反射獲取Class物件的三種方式

2021-10-06 11:24:42 字數 1949 閱讀 8441

@test

void

contextloads1()

throws exception

//反射獲取類中的方法

method[

] declaredmethods = userclass.

getdeclaredmethods()

;for

(method declaredmethod : declaredmethods)

//反射獲取類中的構造方法

constructor<

?>

declaredconstructors = userclass.

getdeclaredconstructors()

;for

(constructor<

?> declaredconstructor : declaredconstructors)

//獲取其他資訊

package apackage = userclass.

getpackage()

; string ******name = userclass.

get******name()

; system.out.

println

(apackage+

":"+******name)

;//建立物件

user user =

(user) userclass.

newinstance()

; system.out.

println

(user)

;//指定構造建立

constructor

declaredconstructor = userclass.

getdeclaredconstructor

(integer.

class

, string.

class);

//生成物件

user user1 = declaredconstructor.

newinstance(1

,"張三");

system.out.

println

(user1)

;//給屬性賦值

//獲得指定的屬性

field name = userclass.

getdeclaredfield

("name");

//private修飾的屬性是不可訪問的,反射是可以訪問的,需要我們新增設定

name.

setaccessible

(true);

name.

set(user1,

"李四");

system.out.

println

(user1)

;//可以執行的方法

//獲取需要執行的方法

method getname = userclass.

getdeclaredmethod

("getname");

string namevalue =

(string)getname.

invoke

(user1)

; system.out.

println

(namevalue)

; method setname = userclass.

getdeclaredmethod

("setname"

, string.

class);

setname.

invoke

(user1,

"劉浩");

system.out.

println

(user1.

getname()

);}}

反射 獲取class檔案物件的三種方式

package cn.itcast 01 反射 就是通過class檔案物件,去使用該檔案中的成員變數,構造方法,成員方法。person p new person p.使用 要想這樣使用,首先你必須得到class檔案物件,其實也就是得到class類的物件。class類 成員變數 field 構造方法 ...

反射機制獲取Class物件的三種方式

person person new person 1 通過object類的getclass 方法 需要先例項化乙個物件 class clazz1 person.getclass 2 通過物件例項方法獲取物件 需要先例項化乙個物件 class clazz2 person.class 3 類的全路徑 不...

反射機制 獲取Class物件的三種方式

條條大路通羅馬 殊途同歸 任何物件的建立都依賴於位元組碼,反射必要獲取位元組碼物件 是最為熟悉的object類中的getclass 方法,能夠完成自己所屬的位元組碼物件的獲取。人所共知 使用該方式,必要明確具體的類,並建立物件!該方式示例 public void test 是通過靜態屬性.class...