是什麼
Java Reflaction in Action有這麼一句話,可以解釋。反射是運行中的程序檢查自己和軟件運行環境的能力,它可以根據它發現的進行改變。通俗的講就是反射可以在運行時根據指定的類名獲得類的信息。
反射是:指程序可以訪問、檢測和修改它本身狀態或行爲的一種能力
反射的好處是:可以在運行時確認對象以及方法。
爲什麼
我們爲什麼要使用反射,它的作用是什麼,它在實際的編程中有什麼應用。
首先我們先明確兩個概念,靜態編譯和動態編譯。
靜態編譯:在編譯時確定類型,綁定對象,即通過。
動態編譯:運行時確定類型,綁定對象。動態編譯最大限度發揮了java的靈活性,體現了多
態的應用,有以降低類之間的藕合性。
我們可以明確的看出動態編譯的好處,而反射就是運用了動態編譯創建對象。
幹什麼
反射是一種能力,所以給的定義就是說明了它能幹嘛。
我們平時用反射主要做:
- 獲取類型的相關信息
- 動態調用方法
- 動態構造對象
- 從程序集中獲得類型。
參考: