Java反射機制可以讓我們在編譯期(Compile Time)之外的運行期(Runtime)檢查類,接口,變數以及方法的資訊。反射也可以讓我們在運行期實例化對象,呼叫方法,透過呼叫get/set方法來取得變數的值。
Java反射機制功能強大且非常實用。舉個例子,你可以用反射機制把Java物件映射到資料庫表,就像Butterfly Persistence(譯者註:原作者所寫的框架)所做的那樣,或者把腳本中的一段語句在運行期映射到在對應的物件呼叫方法上,就像Butterfly Container(譯者註:原作者所寫的框架)在解析它的配置腳本時所做的那樣。
目前在互聯網上已經有不勝枚舉的Java反射指南,然而大多數的指南包括Sun公司所發布的反射指南中都僅僅只是介紹了一些反射的表面內容以及它的潛能。
在這個系列的文章中,我們會比其他指南更深入的去理解Java反射機制,它會闡述Java反射機制的基本原理包括如何去使用數組,註解,泛型以及動態代理還有類的動態載入以及類別的重載的實作。同時也會向你展示如何實作一些比較有特性的功能,例如從一個類別中讀取所有的get/set方法,或是存取一個類別的私有變數以及私有方法。在這個系列的指南中同時也會說明一些非反射相關的但是令人困惑的問題,例如哪些泛型資訊在運行時是有效的,有些人聲稱所有的泛型資訊在運行期都會消失,其實這是不對的。
該系列文章中所描述介紹的是Java 6版本的反射機制。具體請點擊閱讀原文。
1 | Java Reflection 教學 |
2 | Java反射指南 |
Java反射指南 | Reflection: 構造器 |
5 | Java Reflection: 變數 |
6 | Java Reflection: 方法 |
7 | Java Reflection: Getters and Setters |
Java Reflection: 註解 | |
Java Reflection: 泛型 | |
Java Reflection: 數個動態 | 11 |
13 | Java Reflection:動態類別載入與重載 |
以上就是Java Reflection教學的內容,更多相關內容請關注PHP中文網(m.sbmmt.com)! | |