獲取 Class 物件的 3 種方法

阿飞藏泪發表於2024-03-23
呼叫某個物件的 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());
 }

  

相關文章