java反射小样例

java反射小样例

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

package reflect;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;

interface fruit{
	public abstract void eat() ;
}
class Apple implements fruit{

	public void eat() {
		System.out.println("eat Apple");
	}
	
}
class orange implements fruit{

	public void eat() {
		System.out.println("eat orange");
	}
	
}
class init{
	public static Properties getPro() throws FileNotFoundException, IOException{
		Properties pro = new Properties() ;
		File f = new File("fruit.properties") ;
		if(f.exists()){
			System.out.println("有配置文件!");
			//从配置文件里读取键值对
			pro.load(new FileInputStream(f)) ;
		}else{
			System.out.println("没有配置文件!");
			pro.setProperty("apple", "reflect.Apple") ;
			pro.setProperty("orange", "reflect.orange") ;
			pro.store(new FileOutputStream(f), "FRUIT CLASS") ;
		}
		return pro ;
	}
}
class Factory{
	public static fruit getInstance(String className){
		fruit f = null ;
		try {
			//通过反射得到fruit的实例对象
			f = (fruit)Class.forName(className).newInstance() ;
		} catch (InstantiationException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		return f ;
	}
}
public class Hello {
	public static void main(String[] args) {
		try {
			Properties pro = init.getPro() ;
			fruit f = Factory.getInstance(pro.getProperty("apple")) ;
			if(f != null){
				f.eat() ;
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}

java反射小样例

结果为:

有配置文件!
eat Apple

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118290.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 冒泡排序java代码

    冒泡排序java代码还可以优化的,小白可以参考一下

    2022年6月15日
    28
  • 批处理For–分割字符串「建议收藏」

    批处理For–分割字符串「建议收藏」批处理命令For——分割字符串windows下批处理命令分割字符串代码@echooffsetstr=”aa_bb_cc”:GOONfor/f”delims=_,tokens=1,*”%%iin(%str%)do(echo%%i%%jsetstr=”%%j”gotoGOON)输出结果aabb_ccbbcccc

    2022年10月12日
    3
  • 拓展人际关系

    拓展人际关系br nbsp nbsp 处朋友 在讲求效率和效益的商人口中 就成了 人脉 也许很多人都不太喜欢这个有些势利的词 但我觉得不管名称怎么换 能够做到以诚待人 与人为善就是好的 下文所说的几种方法 算是给大家指明了与人相处的几个方向 特别适合人很好但是 EQ 很低的人学习 br br nbsp nbsp nbsp nbsp 1 慷慨大气结交朋友 br br nbsp nbsp nbsp nbsp 与人相处的能力 如果能像糖和咖啡一样可以买得到的话 我会为这种能力多付一些钱 而美国人更有名言说 二十岁靠体力赚钱 那三十岁靠脑力赚钱 四十岁以后则靠交情赚钱

    2025年8月4日
    2
  • Java的三种注释

    Java的三种注释Java基础是java初学者的起点,是帮助你从小白入门到精通必学基础课程!为初学者而著!Java300集>>>适合准备入行开发的零基础员学习Java,基于最新JDK13、IDEA平台讲解的,视频中穿插多个实战项目。每一个知识点都讲解的通俗易懂,由浅入深。不仅适用于零基础的初学者,有经验的程序员也可做巩固学习。配套学习:Java初学者入门教程>>>Java注释:单行、多行和文档注释注释是对程序语言的说明,有助于开发者和用户之间的交流,方便理…

    2022年7月7日
    20
  • 什么是分区容错性?[通俗易懂]

    什么是分区容错性?[通俗易懂]这个回答我觉得一个知乎上的老哥说的特别好,我把他的话引用过来。原回答地址:https://www.zhihu.com/question/54105974一个分布式系统里面,节点组成的网络本来应该是连通的。然而可能因为一些故障,使得有些节点之间不连通了,整个网络就分成了几块区域。数据就散布在了这些不连通的区域中。这就叫分区。当你一个数据项只在一个节点中保存,那么分区出现后,和这个节点不连通的部分就访问不到这个数据了。这时分区就是无法容忍的。提高分区容忍性的办法就是一个数据项复制到多个节点.

    2022年7月25日
    13
  • 手眼标定原理ur5_手眼标定实现「建议收藏」

    手眼标定原理ur5_手眼标定实现「建议收藏」手眼标定基于Tsai的两步法标定,是经典的Ax=xB求解模型。Tsai的两步法标定是基于径向校正约束;第一步:利用最小二乘法求解线性方程组,得出相机的外参数;第二步:根据获得的相机外参数,求取相机的内参数;如果无透视畸变,可以使用一个线性方程求出。罗第6、7章;特别:P164-166)1.手眼标定就是对机械手和相机的位置关系进行标定,这样根据识别得到的像素位置去引导机械手去抓取。2.eye-…

    2022年5月31日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号