在一個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(); } } |
實驗結果如下:
完整專案 (連結)
文章標籤
全站熱搜