天天看點

Java基礎知識----反射反射概念使用反射

反射概念

反射:将類的各個組成部分封裝為其他對象,這就是反射機制

好處:可以在程式運作時操作那些類,比如擷取類資訊、接口、方法和屬性

使用反射

一、擷取Class類對象

一、引用類型

1.Class.forName(類的全路徑名)

2.對象.getClass()

3.類名.Class

二、基本資料類型

類型名稱.Class;

二、操作類對象

一、擷取類資訊

1.getName():擷取類的全路徑名            

2.getSimpleName():擷取類的名稱       

3.getSuperClass():擷取父類的class對象 

4.getInterfaces():擷取實作的所有接口

二、操作構造方法

調用構造方法來擷取對象

getName():擷取目前構造方法的名稱

getParameterTypes():擷取目前構造方法所有參數的類型

newInstance(Object... par):調用目前構造方法,建立一個java對象

三、操作屬性

1.擷取屬性

Field[] getFields():擷取所有的公共的屬性包括繼承的

Field[] getDeclaredFields():擷取目前類的所有屬性包括私有的

Field getField(String name):擷取指定名稱的屬性 包括繼承的

Field getDeclaredField(String name):擷取指定名稱的屬性 包括私有的

2.操作屬性

取值:Object get(Object obj)

指派:void set(Object obj, Object value)

四、操作方法

1.擷取方法

Method[] getMethods() 擷取所有方法 包括繼承的

Method[] getDeclaredMethods() 擷取所有方法 包括私有

Method getMethod(String name,Class... para) 擷取指定方法 包括繼承的

Method getDeclaredMethod(String name,Class... para) 擷取指定方法 包括私有的

2.操作方法

Object invoke(Object obj, Object... values)