在一個Class 的內部,一般包含屬性(Fields)、建構指(Constructor )、方法和內部Class 等成員。

透過反射機制可以在法檢視原始碼的情況下檢視Class 的成員,本實驗利用反射機制檢視ArrayList類別中定義的屬性、建構指和方法。

 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class ClassViewer {

	public static void main(String[] args) throws ClassNotFoundException {
		Class<?> clazz = Class.forName("java.util.ArrayList");
		System.out.println("類別的標準名稱 : " +clazz.getCanonicalName() );
		
		System.out.println("類別 建構方法");
		for(Constructor constructor : clazz.getConstructors())
			System.out.println("\t" + constructor);
		System.out.println();
		
		System.out.println("類別非繼承之區域變數");
		for(Field field : clazz.getDeclaredFields())
			System.out.println("\t" + field);
		System.out.println();
		
		System.out.println("類別非繼承之方法名稱");
		for(Method method : clazz.getDeclaredMethods())
			System.out.println("\t" + method);
		System.out.println();
		
	}
}

 

實驗結果如下:

image

 

完整專案 (連結)

 

 

arrow
arrow
    文章標籤
    java
    全站熱搜
    創作者介紹
    創作者 Lung-Yu,Tsai 的頭像
    Lung-Yu,Tsai

    Lung-Yu,Tsai 的部落格

    Lung-Yu,Tsai 發表在 痞客邦 留言(0) 人氣()