Java 反射【前置知識點】

飛天小牛肉發表於2020-12-20

1. 什麼是 Java 的反射機制

反射主要是指程式可以訪問、檢測和修改它本身狀態或行為的一種能力。

在 Java 執行時環境中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個物件,都能夠呼叫它的任意一個方法和屬性;這種動態獲取的資訊以及動態呼叫物件的方法的功能稱為 Java 語言的反射機制。

Java 反射機制主要提供了以下功能:

  • 在執行時(動態編譯)判斷任意一個物件所屬的類。
  • 在執行時構造任意一個類的物件。
  • 在執行時判斷任意一個類所具有的成員變數和方法。
  • 在執行時呼叫任意一個物件的方法和屬性。

這種動態獲取資訊以及動態呼叫物件的方法的功能稱為 Java 語言的反射機制

2. Class 類

在程式執行期間,Java 執行時系統始終為所有的物件維護一個被稱為執行時的型別標識。 這個資訊跟蹤著每個物件所屬的類。 虛擬機器利用執行時型別資訊選擇相應的方法執行。

可以通過專門的 Java 類訪問這些資訊。儲存這些資訊的類被稱為 ClassClass 類用於表示 .class 檔案(位元組碼

說的通俗點,反射就是把 Java 類中的各種成分對映成一個個的 Java 物件

例如一個類有:成員變數、方法、構造方法、包等等資訊,利用反射技術可以對一個類進行解剖,把個個組成部分對映成一個個物件。

如圖是類的正常載入

相關文章