java 反射机制

                                                                                     java 反射机制

1.java反射机制:动态的加载类,动态的创建对象,动态的解剖类内部的成员变量,方法实体。主要用在框架中

   配置文件中类的动态加载,解析。

2.动态的加载类,三种方式

   

                Class clazz1 = Class.forName("com.java.reflection.Person");
		Class clazz2 = Person.class;
		Class clazz3 = new Person().getClass();


3.动态的加载类,动态创建类的对象

   

        Class clazz = Class.forName("com.java.reflection.Person");
		//获得Person类中的无参数的构造方法
        Constructor c = clazz.getConstructor(null);
        c.newInstance(null);
        //获得Person类中的一个参数的构造方法
        Constructor c1 = clazz.getConstructor(String.class);
        c1.newInstance("name");


4.动态的加载类,动态创建类的对象,动态调用方法

  

                Class clazz = Class.forName("com.java.reflection.Person");
		Person p = (Person) clazz.newInstance();
		Method m1 = clazz.getMethod("method1", null);
		m1.invoke(p, null);
		
		Method m2 = clazz.getMethod("method2", String.class);
		m2.invoke(p, "name");
		
		Method m3 = clazz.getMethod("method3", String.class,int.class);
		m3.invoke(p, "name",123);
		
		Method m4 = clazz.getMethod("method4", String.class,int[].class);
		m4.invoke(p, "name",new int[]{123,222});
		
		Method main = clazz.getMethod("main", String[].class);
		main.invoke(p,new Object[]{new String[]{"ss"}});

5.使用反射机制加载配置文件中类的具体实例

   

                Properties pt = new Properties();
		
		pt.load(Client.class.getClassLoader().getResourceAsStream("com/Factory/Spring/application.properties"));
		String VehicleName = pt.getProperty("VehicleType");
		Object o = Class.forName(VehicleName).newInstance();
		Movable m = (Movable)o;
		m.run();

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值