.编写一个注解。并添加元注解,让该注解可以用在方法上,类上,和属性上
生活随笔
收集整理的這篇文章主要介紹了
.编写一个注解。并添加元注解,让该注解可以用在方法上,类上,和属性上
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
/*** @author silence* <p>* test標(biāo)注的會(huì)被調(diào)用*/
public class DemoA {public void method1() {System.out.println("DemoA method1方法被調(diào)用");}@Testpublic void method2() {System.out.println("DemoA method2方法被調(diào)用");}@Testpublic void method3() {System.out.println("DemoA method3方法被調(diào)用");}
}
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;/*** @author silence* 運(yùn)行主方法*/
public class DemoB {public static void main(String[] args) throws Exception {//獲得字節(jié)碼文件對(duì)象Class<DemoA> clazz = DemoA.class;//通過字節(jié)碼引用獲得單個(gè)無(wú)參構(gòu)造Constructor<DemoA> constructor = clazz.getConstructor();// 通過無(wú)參構(gòu)造引用創(chuàng)建對(duì)象 因?yàn)槭菬o(wú)參,所以這里也不用傳實(shí)參//可以通過這個(gè)引用直接調(diào)用方法DemoA demoA = constructor.newInstance();//首先獲取有參和無(wú)參的所有方法,Method[] methods = clazz.getDeclaredMethods();//遍歷數(shù)組for (Method method : methods) {//判斷方法是否添加了注解 這里傳入字節(jié)class文件if (method.isAnnotationPresent(Test.class)) {//如果添加了注解,則調(diào)傭該方法//這里需要傳入對(duì)象引用, 如果有參數(shù)需要傳入實(shí)參method.invoke(demoA);}}}
}
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;/*** @author silence* 自定義注解*/
@Retention(value = RetentionPolicy.RUNTIME)
public @interface Test {
}
總結(jié)
以上是生活随笔為你收集整理的.编写一个注解。并添加元注解,让该注解可以用在方法上,类上,和属性上的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 台风“暹芭”登陆广东电白 实拍龙卷风:板
- 下一篇: ios 自定义拍照页面_vivo X27