Java 反射獲取Class對象的幾種方式

Java 程序中獲得 Class 對象通常有如下三種方式:

使用 Class forName()

調用某個類的 class 屬性

調用某個對象的 getClass()

代碼舉例:

內容解析:

Class本身也是一個類,當JVM將用戶自定義的類加載進來之後,會生成對應的Class的對象。

  • 可以通過Class類的靜態方法forName方法輸入類的路徑直接獲取這個對象;
  • 也可以通過用戶自定義的類的靜態屬性class獲取這個對象;
  • 用戶自定義的類的對象也可以通過函數獲取其對應的Class對象。

三種方式的區別:

  • 方法一不執行靜態塊和動態構造塊;
  • 方法二執行靜態塊、不執行動態構造塊;
  • 方法三需要創建對象,靜態塊和動態構造塊均會執行。

注意:靜態塊僅在類加載時執行一次,若類已加載便不再重複執行;而動態構造塊在每次new對象時均會執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章