反射 取得類的結構

2021-08-07 21:14:34 字數 2029 閱讀 4894

一,本章目標

1.可以使用反射取得實現的全部介面

2.可以使用反射取得乙個類所繼承的父類

3.可以使用反射取得乙個類的全部構造方法

4.可以使用反射取得乙個類中全部的方法

5.可以使用反射獲得乙個類中的全部屬性

二,具體內容

乙個操作類如下:

package 取得類的結構;

public class person implements china

public void setname(string name)

public int getage()

public void setage(int age)

public person()

public person(string name)

public person(int age)

public person(string name,int age)

public void saychina()

public string sayhello(string name, int age)

}inte***ce china

2.1得到全部的介面

public class> getinte***ces() 

因為乙個類可以實現多個介面,所以此處以乙個陣列的方式返回。

2.2取得乙個類的父類

public class super t>getsuperclass(),此方法返回的是class例項,和之前得到的介面一樣,都有getname方法。

objcet是任何類的父類

2.3取得全部構造方法

以上**雖然確實取得了全部的構造方法,但是此時是通過物件直接列印取得的,肯定會呼叫constructor類中的tostring方法。

constructor類中存在之下幾種方法:

取得修飾符:public int getmodifiers

取得方法名稱:public string getname

取得引數型別:public class> getparametertypes

還原修飾符**如下:

2.4取得類中的全部方法

public method getdeclaredmethods() throws securityexception          --->輸出本類中的全部方法

public method getmethods() throws securityexception  --->輸出全部的方法(繼承的父類,介面)

2.5取得類中的屬性

三,總結

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

獲取執行時類的屬性 public class testfields 2 getdeclaredfields 能夠獲取執行時類本身中宣告的所有屬性 field fields1 clazz.getdeclaredfields for field f fields1 許可權修飾符,變數型別,變數名 獲取屬...

反射獲取執行時類的結構

屬性 1.getfields 獲取當前執行時類及其父類中宣告為public訪問許可權的屬性 2.getdeclaredfields 獲取當前執行時類中宣告的所有屬性。不包含父類中宣告的屬性 4.getmodifiers 許可權修飾符 5.gettype 資料型別 6.getname 變數名 獲取執行...

C 反射取得方法 屬性 變數

程式結構 學生字典類 s0001 using system using system.collections.generic using system.linq using system.text using system.data namespace dictionary.class.s0001 ...