呼叫某個物件的 getClass()方法
Person p=new Person();
Class clazz=p.getClass();
呼叫某個類的 class 屬性來獲取該類對應的 Class 物件
Class clazz=Person.class;
使用 Class 類中的 forName()靜態方法(最安全/效能最好)
Class clazz=Class.forName("類的全路徑"); (最常用)
當我們獲得了想要操作的類的 Class 物件後,可以透過 Class 類中的方法獲取並檢視該類中的方法和屬性。
//獲取 Person 類的 Class 物件 Class clazz=Class.forName("reflection.Person"); 13/04/2018 Page 105 of 283 //獲取 Person 類的所有方法資訊 Method[] method=clazz.getDeclaredMethods(); for(Method m:method){ System.out.println(m.toString()); } //獲取 Person 類的所有成員屬性資訊 Field[] field=clazz.getDeclaredFields(); for(Field f:field){ System.out.println(f.toString()); } //獲取 Person 類的所有構造方法資訊 Constructor[] constructor=clazz.getDeclaredConstructors(); for(Constructor c:constructor){ System.out.println(c.toString()); }