Java反射机制分析

反射机制的做用:java

 1,反编译:.class-->.java安全

 2,经过反射机制访问java对象的属性,方法,构造方法等;.net

 

一、Java提供了以下四个反射机制的类:对象

java.lang.Class;                blog

java.lang.reflect.Constructor; java.lang.reflect.Field;        get

java.lang.reflect.Method;编译

java.lang.reflect.Modifier;class

二、理解类型与对象的概念:object

Class 表示Java的类型,例子以下,三种获取Java类型的方法,获取User的类型:技巧

(1)、Class clz = Class.forName(“User”);

(2)、Class clz = User.class;

(3)、User user = new User();

       Class clz = user.getClass();

获取类型以后,经过类型来建立对象实例,利用newInstance()

Object object = clz.newInstance();

 

三、获取属性:分为获取全部属性和获取指定的属性

     反射机制能够打破封装性,便可将不可访问域修改为可访问域,这样会形成Java属性不安全

四、获取方法和构造方法

五、经过invoke来调用Class 的方法:

Method method =  clz.getDeclaredMethod("setAge",Integer.class); 

method.invoke(clz.newInstance(),15);

若是是静态方法的反射,则不用newInstance();

六、经过fild的set方法设置值

Field field = cls.getDeclaredField("age");  

field.setAccessible(true);//设置容许访问  

field.set(student, 10); 

参考:http://blog.csdn.net/liujiahan629629/article/details/18013523  Java反射机制概念讲解

参考:http://blog.csdn.net/ichsonx/article/details/9108173 Java反射机制的小技巧

参考:http://blog.csdn.net/ichsonx/article/details/9081351 Java反射机制详细分析

相关文章
相关标签/搜索