所謂的反射機制就是java語言在運行時擁有一項自觀的能力。通過這種能力可以徹底的瞭解自身的情況爲下一步的動作做準備。
下面具體介紹一下java的反射機制。
Java的反射機制的實現要藉助於4個類:Class,Constructor,Field,Method;
其中Class代表的是類對 象,Constructor-類的構造器對象,Field-類的屬性對象,Method-類的方法對象。通過這四個對象我們可以粗略的看到一個類的各個組 成部分。
Java反射的作用:
在Java運行時環境中,對於任意一個類,可以知道這個類有哪些屬性和方法。對於任意一個對象,可以調用它的任意一個方法。這種動態獲取類的信息以及動態調用對象的方法的功能來自於Java 語言的反射(Reflection)機制。
Java 反射機制主要提供了以下功能
在運行時判斷任意一個對象所屬的類。
在運行時構造任意一個類的對象。
在運行時判斷任意一個類所具有的成員變量和方法。
在運行時調用任意一個對象的方法
下面是簡單的反射的例子:
1. 首先準備兩個很簡單的業務類
2. 非反射方式切換不同的業務方法調用
當需要從第一個業務方法切換到第二個業務方法的時候,使用非反射方式,必須修改代碼,並且重新編譯運行,纔可以達到效果
3. 反射方式
使用反射方式,首先準備一個配置文件,就叫做spring.txt吧, 放在src目錄下。 裏面存放的是類的名稱,和要調用的方法名。在測試類Test中,首先取出類名稱和方法名,然後通過反射去調用這個方法。
當需要從調用第一個業務方法,切換到調用第二個業務方法的時候,不需要修改一行代碼,也不需要重新編譯,只需要修改配置文件spring.txt,再運行即可。
使用這個例子,可以較好得理解反射的一個應用場景。
這也是Spring框架的最基本的原理,只是它做的更豐富,安全,健壯。