【Java編程】之反射機制

Java 反射的定義:

Java 反射所要依賴的類:
 java.lang.Class;
 java.lang.reflect.Method;
 java.lang.reflect.Field;
 java.lang.reflect.Constructor;
 java.lang.reflect.Array;

無論一個類生成多少個對象,它們都對應唯一的一個class。

一、  要想使用反射,首先需要獲得待處理的類或對象所對應的Class對象

 獲取Class對象主要有三種方法:

//獲取Class對象方法一: 使用Class類的靜態方法
Class<?> classType1 = Class.forName("java.lang.String");
		
//獲取Class對象方法二: 使用類的.class 語法
Class<?> classType2 = String.class;
		
//獲取Class對象方法二: 使用對象的getClass()方法(因爲使用的是對象的getClass()方法,所以要先生成對象)
String str = "reflection";
Class<?> classType3 = str.getClass();


二、獲取Class對象後就可以生成類的對象了,也有二種方法:

//生成對應Class的對象(適合構造方法爲空)
Object obj1 = classType1.newInstance();
		
//生成對應Class的對象 的第二種方法(適合任何方式的構造方法,空構造方法時只要傳一個空數組)
Constructor<?> cons = classType1.getConstructor(new Class[]{});
Object obj2 = cons.newInstance(new Object[]{});

三、獲取Class對象所有的屬性和方法

//獲取所有的屬性
Field[] field = classType3.getDeclaredFields();
		
//獲取所有的方法
Method[] methods = classType3.getMethods();





       

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章