java反射

反射定義:java

程序能夠訪問,檢測和修改它自己狀態或行爲的一種能力,並能根據自身行爲的狀態和結果,調整或修改應用所描述行爲的狀態和相關的語義。一個類有多個組成部分,例如:成員變量、方法、構造方法等,反射就是加載類,並解剖出類的各個組成部分。安全

 

功能做用:性能

反射機制主要提供如下功能:
 
①在運行時判斷任意一個對象所屬的類;

②在運行時構造任意一個類的對象;

③在運行時判斷任意一個類所具備的成員變量和方法;

④在運行時調用任意一個對象的方法;

⑤生成動態代理。
 
與反射有關的類:
java.lang.Class;
java.lang.reflect.Constructor;
java.lang.reflect.Field;
java.lang.reflect.Method;
java.lang.reflect.Modifier;
 

使用步驟:代理

導入java.lang.relfect包對象

三個步驟get

        第一步,是得到你想操做的類的java.lang.Class對象編譯

        第二步,是調用諸如getDeclaredMethods的方法class

        第三步,使用反射API來操做這些信息變量

 

得到Class對象的方法擴展

一、若是一個類的實例已經獲得,你可使用

Class c =對象.getClass()

 

二、若是你在編譯期知道類的名字,你可使用以下的方法

Class c = java.awt.Button.class

 

三、若是類名在編譯期不知道,可是在運行期能夠得到,你可使用下面的方法

Class c = Class.forName(str)

 

反射優勢: 
(1)可以運行時動態獲取類的實例,大大提升系統的靈活性和擴展性。 
(2)與Java動態編譯相結合,能夠實現無比強大的功能 


反射缺點: (1)使用反射的性能較低 (2)使用反射相對來講不安全 (3)破壞了類的封裝性,能夠經過反射獲取這個類的私有方法和屬性 

相關文章
相關標籤/搜索