1. 程式人生 > 其它 >Java反射機制獲取執行時類的完整結構

Java反射機制獲取執行時類的完整結構

通過反射獲取執行時類的完整結構

Field、Method、Constructor、Superclass、Interface、Annotation

Ø 實現的全部介面

Ø 所繼承的父類

Ø 全部的構造器

Ø 全部的方法

Ø 全部的Field

通過反射獲取執行時類的完整結構

使用反射可以取得:

1.實現的全部介面

Ø public Class<?>[] getInterfaces()

確定此物件所表示的類或介面實現的介面。

2.所繼承的父類

Ø public Class<? Super T> getSuperclass()

返回表示此 Class 所表示的實體(類、介面、基本型別)的父類的 Class。

3.全部的構造器

Ø public Constructor[] getConstructors()

返回此 Class 物件所表示的類的所有public構造方法。

Ø public Constructor[] getDeclaredConstructors()

返回此 Class 物件表示的類宣告的所有構造方法。

Constructor類中:

Ø 取得修飾符: public int getModifiers();

Ø 取得方法名稱: public String getName();

Ø 取得引數的型別:public Class<?>[] getParameterTypes();

4.全部的方法

Ø public Method[] getDeclaredMethods()

返回此Class物件所表示的類或介面的全部方法

Ø public Method[] getMethods()

返回此Class物件所表示的類或介面的public的方法

Method類中:

Ø public Class<?> getReturnType()取得全部的返回值

Ø public Class<?>[] getParameterTypes()取得全部的引數

Ø public int getModifiers()取得修飾符

Ø public Class<?>[] getExceptionTypes()取得異常資訊

5.全部的Field

Ø public Field[] getFields()

Ø 返回此Class物件所表示的類或介面的public的Field。

Ø public Field[] getDeclaredFields()

Ø 返回此Class物件所表示的類或介面的全部Field。

Ø Field方法中:

Ø public int getModifiers() 以整數形式返回此Field的修飾符

Ø public Class<?> getType() 得到Field的屬性型別

Ø public String getName() 返回Field的名稱。

6. Annotation相關

Øget Annotation(Class annotationClass)

ØgetDeclaredAnnotations()

7.泛型相關

獲取父類泛型型別:Type getGenericSuperclass()

泛型型別:ParameterizedType

獲取實際的泛型型別引數陣列:getActualTypeArguments()

8.類所在的包 Package getPackage()

小 結:

1.在實際的操作中,取得類的資訊的操作程式碼,並不會經常開發。

2.一定要熟悉java.lang.reflect包的作用,反射機制。

3.如何取得屬性、方法、構造器的名稱,修飾符等。

瞭解更多java培訓相關技術課程歡迎關注小編!