2 1 2 06 獲取class物件的三種方式

2022-08-16 01:21:11 字數 1186 閱讀 4334

獲取class物件的方式:

1.class.forname("全類名"):將位元組碼檔案載入進記憶體,返回class檔案物件(在source源**階段的呼叫)

2.類名.class:通過類名的屬性class獲取(在class類物件階段的呼叫)

3.物件名.getclass():getclass()方法是object類中的方法(在runtime執行階段的呼叫)

"全類名");

class aclass = class.forname("reflect.reflectentity2");

system.out.println(aclass);

//2.類名.class;

class reflectentity2class = reflectentity2.class;

system.out.println(reflectentity2class);

//3.物件.getclass();

reflectentity2 reflectentity2 = newreflectentity2();

class aclass1 =reflectentity2.getclass();

system.out.println(aclass1);

//比較三者位址值是否相同

system.out.println(aclass==reflectentity2class);//true

system.out.println(aclass==aclass1);//true

system.out.println(reflectentity2class==aclass1);//true

輸出結果:

結論:

同乙個位元組碼檔案(*.class)在一次程式執行的過程中只會被載入一次,不論哪種方式獲取的物件都是同乙個

如何獲取Class物件

1.1 object getclass 1.2 任何資料型別 包括基本資料型別 都有乙個 靜態 的class屬性 1.3 通過class類的靜態方法 forname string classname 常用 public class fanshe catch classnotfoundexceptio...

獲取Class物件的方法及Class型別的一些討論

1 class.forname classname 2 classname.class 如果是陣列,則是陣列型別.class 3 物件.getclass 例 1 string path packagename.classname 包名,類名 23 class c1 class.forname pat...

java反射之獲取Class物件

一 非基本資料型別 1 呼叫靜態方法class.forname string classname 引數為完整的類名,包括包的名字。class.forname p1.person p1是包名,person是類名 class.forname oracle.jdbc.driver.oracledriver...