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反射機制詳細分析

相關文章
相關標籤/搜索