以下內容整理自互聯(lián)網消别,僅用于個人學習
什么是反射機制
JAVA反射機制是在運行狀態(tài)中, 對于任意一個類, 都能夠知道這個類的所有屬性和方法; 對于任意一個對象, 都能夠調用它的任意一個方法和屬性; 這種動態(tài)獲取的信息以及動態(tài)調用對象的方法的功能稱為java語言的反射機制。
反射機制所操作的對象
- Class:類對象
- Constructor:類的構造器對象
- Field:類的屬性對象
- Method:類的方法對象
反射機制的作用
- 在運行時判斷任意一個對象所屬的類
- 在運行時構造任意一個類的新對象實例(.newInstance())
- 在運行時獲取任意一個類所具有的成員變量和方法
- 在運行時調用任意一個對象的方法
開發(fā)中的用處:
- 觀察或操作應用程序的運行時行為泽台。
- 調試或測試程序赏胚,因為可以直接訪問方法访娶、構造函數和成員字段。
- 通過名字調用不知道的方法并使用該信息來創(chuàng)建對象和調用方法觉阅。
反射機制的優(yōu)缺點
- 優(yōu)點:就是可以實現(xiàn)動態(tài)創(chuàng)建對象和編譯崖疤,體現(xiàn)出很大的靈活性秘车,特別是在J2EE的開發(fā)中它的靈活性就表現(xiàn)的十分明顯。
- 缺點:對性能有影響劫哼。使用反射基本上是一種解釋操作叮趴,我們可以告訴JVM,我們希望做什么并且它滿足我們的要求权烧。這類操作總是慢于只直接執(zhí)行相同的操作眯亦。并且它饒過了源碼,會干擾原來的內部邏輯般码。
反射機制獲取class的方法
- class.forName(類的路徑)
- 類名.class
- 實例.getClass()