java 反射机制
2016-02-11 16:42
357 查看
java 反射机制
1.java反射机制:动态的加载类,动态的创建对象,动态的解剖类内部的成员变量,方法实体。主要用在框架中
配置文件中类的动态加载,解析。
2.动态的加载类,三种方式
3.动态的加载类,动态创建类的对象
4.动态的加载类,动态创建类的对象,动态调用方法
5.使用反射机制加载配置文件中类的具体实例
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();
相关文章推荐
- java volatile详解(转)
- JavaBean 和内省
- JAVA 正则表达式总结
- Java核心技术(第8版)学习笔记_Java程序设计环境
- JavaWeb_使用Cookie模拟实现显示最近浏览的商品
- java.lang.NoClassDefFoundError: javax/persistence/Cacheable
- Java匿名类
- java学习心得——自动回复功能
- struts2学习笔记--ActionContext对象
- Java设计模式(二十一)----访问者模式
- Java中的序列化与反序列化
- Hessian入门(与Spring集成)
- Java核心技术(第8版)学习笔记_概述
- eclipse web.xml for weblogic 11g
- Java基础 十进制转十六进制
- java servlet listener
- java servlet filter
- web.xml中在Servlet中获取context-param和init-param内的参数
- java servlet基础
- java开发策略