反射 與 註解 的小案例

2021-09-11 06:22:21 字數 1470 閱讀 1199

public class reflecttest

}//配置檔案:

classname=cn.itcast.domain.student

methodname=sleep

//定義了屬性,在使用時需要給屬性賦值

【定義了屬性,在使用時需要給屬性賦值

1. 如果定義屬性時,使用default關鍵字給屬性預設初始化值,則使用註解時,可以不進行屬性的賦值。

2. 如果只有乙個屬性需要賦值,並且屬性的名稱是value,則value可以省略,直接定義值即可。

3. 陣列賦值時,值使用{}包裹。如果陣列中只有乙個值,則{}可以省略】

@pro(classname = "cn.itcast.annotation.demo1",methodname = "show")

public class reflecttest

public string methodname()}*/

pro an = reflecttestclass.getannotation(pro.class);

//3.呼叫註解物件中定義的抽象方法,獲取返回值

string classname = an.classname();

string methodname = an.methodname();

system.out.println(classname);

system.out.println(methodname);

//3.載入該類進記憶體

class cls = class.forname(classname);

//4.建立物件

object obj = cls.newinstance();

//5.獲取方法物件

method method = cls.getmethod(methodname);

//6.執行方法

method.invoke(obj);

}}

demo1類

public class demo01 

}

pro自定義註解

/**

* 描述需要執行的類名,和方法名

*/@target()

@retention(retentionpolicy.runtime)

public @inte***ce pro

private static void setproperty(object object,string name,object value) throws nosuchfieldexception, illegalacces***ception, nosuchmethodexception, invocationtargetexception 

public static void main(string args) throws exception

學生類這裡就不寫上來了

註解與反射6得到Class類的幾種方式

物件照鏡子後可以看到的資訊 某個類的屬性,方法,和構造器,某個類到底實現了哪些介面。對於每個類而言,jre都為其保留乙個不變的class型別的物件。乙個class物件包含了特定某個結構就有關資訊。public class test class person public void setname s...

angluarJs與後台互動小案例

1 myservice.html myservicectrl ng click hidetip 使用者名稱 text ng model username placeholder 請輸入使用者名稱.上面封裝的服務其實就是眾多controller中與後台檔案互動,得到資料的共同 提取出來單獨封裝在公共服...

防抖與節流小案例

首先,沒有進行防抖與節流處理的滑鼠移動事件 1 var num 1 2var owrap document.getelementbyid wrap 3function count 6 owrap.onmousemove count 上面 中,給div繫結了滑鼠移動事件,當滑鼠在盒子內頻繁移動時,事件...