Java學習 反射機制

2021-07-10 19:56:29 字數 1141 閱讀 9743

前提:person類已經定義屬性(name,age)、方法(tostring)、無參建構函式(感覺像是必須的)

1、獲取類—>通過類的newinstance()方法建立執行時類物件—>通過clazz.getdeclaredfield(「name」)【用於非public屬性,結合f1.setaccessible(true)使用】或者clazz.getfield(「name」)【用於public屬性】獲取類屬性name,這裡為f1—>通過類屬性.set(p1,值)方法進行類物件p1對應屬性name設定【為值】,其他類似—>通過clazz.getmethod(「tostring」,引數)獲取類方法tostring(),通過m1.invoke(p1,引數)進行類物件方法呼叫,其他類似。

注意:

1)屬性名、方法名均帶雙引號;

2)非public的類方法與非public的類屬性的做法類似;

class clazz = person.class;

person p1 = (person)clazz.newinstance();

system.out.println(p1);

field f1 = clazz.getdeclaredfield(「name」);

f1.setaccessible(true);

f1.set(p1, 「lilililiu」);

system.out.println(p1);

field f2 = clazz.get**declared**field(「age」);

f2.setaccessible(true);

f2.set(p1, 43);

system.out.println(p1);

method m1 = clazz.getmethod(「tostring」);

system.out.println(m1.invoke(p1));

method m2 = clazz.get**declared**method(「setage」,integer.class);

m2.setaccessible(true);

m2.invoke(p1, 23);

system.out.println(m1.invoke(p1));

Java反射機制學習(一)

首先先說以下反射使用的基本步驟 套路 基本步驟 1.獲取目標型別相應的class物件 2.呼叫class物件內省方法獲取目標類成員資訊 3.訪問目標類成員資訊 操作目標類中的成員 通過反射獲取該類的field,method,constructor,inte ce,package and superc...

java反射機制

private string getmethod catch instantiationexception e1 catch illegalacces ception e1 try catch illegalargumentexception e catch illegalacces ception...

Java反射機制

1.反射是指程式在執行時,可以通過反射機制拿到任何乙個類的內部所有資訊。2.可以獲得類的所有屬性資訊,包括私有屬性,並對其進行操作 3.可以獲得物件所對應的類 4.可以拿到本類,或父類中的方法,並且對其進行操作。常用方法 getname 獲得類對應的名稱 getdeclaredfields 獲得類中...