Java反射 獲取Class及Class對應資訊

2021-08-30 06:33:34 字數 1780 閱讀 8785

1.獲取構造器(constructor)

getconstructor(class<?>...parametertypes)返回 public 指定形參的 constructor

getconstructors() 返回 public 所有的constructor

getdeclaredconstructor(class<?>...parametertypes) 返回 任何訪問許可權 指定形參的 constructor

getdeclaredconstructors(); 返回 所有 任何訪問許可權的constructor

2.獲取方法(method)

getmethod(string name,class<?>...parametertypes) 返回 public 指定名字、形參的 method

getmethods() 返回 public 所有method

getdeclaredmethod(string name,class<?>...parametertypes) 返回 任何訪問許可權 指定名字、形參method

getdeclaredmethods(); 返回 任何訪問許可權 所有method

3.獲取成員變數(field)

getfield(string name) 返回 public 指定名字的 field

getfields() 返回 public 所有field

getdeclarefield(string name) 返回 任何訪問許可權 指定名字 field

getdeclarefields() 返回 任何訪問許可權 所有 field

4.獲取class上的註解(annotation)

getannotation(classannotationclass) 獲取修飾該class類的 指定型別的 annotation

getdeclaredannotation(classannotationclass) 獲取 修飾該class類的、指定型別的annotation /... jdk1.8新增.../

getannotations() 返回該修飾該class類的所有annotation

getdeclaredannotations() 返回 修飾該class類的 所有annotation

5.獲取class相關的內部類、外部類、介面類、父類

getdeclaredclasses() 返回該class類中 所有 內部類

getdeclaringclass() 返回該class類中 所在的 外部類(如果該類是個內部類的話)

getinte***ces() 返回該class類 所有的 已實現的介面

getsuperclass() 返回該class類的 父類

6.其他資訊

package getpackage() 獲取此類的包

string getname 返回該類的名稱 (全限定名 : com.***.***.***)

string get******name()返回該類的簡稱 (單類名 : ***)

7.判斷方法 (返回boolean)

isannotation() 該類是否為註解型別 (@inte***ce定義)

isannotationpresent(class<? extends annotation> annotationclass) 該類中是否使用過(某個指定)註解

isanonymousclass() 該類是否是乙個匿名類

isenum() 該類是否是乙個列舉類

isinte***ce() 該類是否是乙個介面

java反射之獲取Class物件

一 非基本資料型別 1 呼叫靜態方法class.forname string classname 引數為完整的類名,包括包的名字。class.forname p1.person p1是包名,person是類名 class.forname oracle.jdbc.driver.oracledriver...

java高階反射之獲取class

前提 在com.jk.bean裡面建立乙個person類,新增get set方法,tostring方法。還有各種私有和公有方法,供測試用。package com.jk.fs import com.jk.bean.person 要想對位元組碼檔案進行解剖,必須要有位元組碼檔案物件 author sx1...

Java反射及如何獲得Class物件

反射是一種機制,利用該機制可以在程式執行過程中對類進行解剖並操作類中的方法,屬性,構造方法等成員。所以反射被稱為框架設計的靈魂。由上圖分析可得,使用反射機制的前提是獲取該類的位元組碼檔案物件,即class物件。通過類的名稱得到class物件,用法 多用於配置檔案,將類名定義在配置檔案中。讀取檔案,載...