Java Reflection教程
Java反射機製可以讓我們在編譯期(Compile Time)之外的運行期(Runtime)檢查類,接口,變量以及方法的信息。反射還可以讓我們在運行期實例化對象,調用方法,通過調用get/set方法獲取變量的值。
Java反射機製功能強大而且非常實用。舉個例子,你可以用反射機製把Java對象映射到數據庫表,就像Butterfly Persistence(譯者注:原作者所編寫的框架)所做的那樣,或者把腳本中的一段語句在運行期映射到相應的對象調用方法上,就像 Butterfly Container(譯者注:原作者所編寫的框架)在解析它的配置腳本時所做的那樣。
目前在互聯網上已經有不勝枚舉的Java反射指南,然而大多數的指南包括Sun公司所發布的反射指南中都僅僅隻是介紹了一些反射的表麵內容以及它的潛能。
在這個係列的文章中,我們會比其他指南更深入的去理解Java反射機製,它會闡述Java反射機製的基本原理包括如何去使用數組,注解,泛型以及動態代理還有類的動態加載以及類的重載的實現。同時也會向你展示如何實現一些比較有特性的功能,比如從一個類中讀取所有的get/set方法,或者訪問一個類的私有變量以及私有方法。在這個係列的指南中同時也會說明一些非反射相關的但是令人困惑的問題,比如哪些泛型信息在運行時是有效的,一些人聲稱所有的泛型信息在運行期都會消失,其實這是不對的。
該係列文章中所描述介紹的是Java 6版本的反射機製。
最後更新:2017-05-23 11:31:45