java 自定義注解的實例詳解
java 自定義注解的實例詳解
Java的Annotation是在5.0版本之后引入的,可以用于創(chuàng)建文檔,跟蹤代碼中的依賴性,并且可以執(zhí)行編譯時期檢查。注解就是給虛擬機看的,代表程序的一些特殊的功能。JDK中提供了@Override,@SuppressWarning,@Deprecated三種注解,當讓還有元注解,@Target,@Retention,@Documented,@Inherited,元注解的作用負責注解其它注解。
要想了解注解,就要了解自定義注解,了解是通過反射來實現(xiàn)的。
首先,我們先自定義一個注解,
@Retention(value=RetentionPolicy.RUNTIME)
public @interface MyTest {
}
接著再寫一個測試demo
public class AnnotationDemo1 {
@MyTest
public void demo1(){
System.out.println("方法1...");
}
@MyTest
public void demo2(){
System.out.println("方法2...");
}
@Test
public void demo3(){
System.out.println("方法3...");
}
最后要讓AnnotationDemo1中所有帶Mytest注解的方法運行,接下來是運行類
public class DemoRunner {
public static void main(String[] args) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, InstantiationException {
//獲得測試類的class
Class clazz=AnnotationDemo1.class;
//獲得class中的所有的方法
Method[] mothods=clazz.getMethods();
//遍歷每個方法,
for(Method method:mothods){
boolean flag = method.isAnnotationPresent(MyTest.class);
System.out.println(flag);
if(flag){
// 說明方法上有MyTest注解:
method.invoke(clazz.newInstance(), null);
}
}
}
}
最后測試就能輸出方法1...和方法2了...,這樣也就簡單實現(xiàn)自定義注解了。
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Java并發(fā)編程(CyclicBarrier)實例詳解
這篇文章主要介紹了Java并發(fā)編程(CyclicBarrier)實例詳解的相關(guān)資料,JAVA編寫并發(fā)程序的時候,我們需要仔細去思考一下并發(fā)流程的控制,如何讓各個線程之間協(xié)作完成某項工作。2017-07-07
java 實現(xiàn)websocket的兩種方式實例詳解
這篇文章主要介紹了java 實現(xiàn)websocket的兩種方式實例詳解,一種使用tomcat的websocket實現(xiàn),一種使用spring的websocket,本文通過代碼給大家介紹的非常詳細,需要的朋友可以參考下2018-07-07
java算法Leecode刷題統(tǒng)計有序矩陣中的負數(shù)
這篇文章主要為大家介紹了java算法Leecode刷題統(tǒng)計有序矩陣中的負數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10
Java之SpringCloud Eurka注冊錯誤解決方案
這篇文章主要介紹了Java之SpringCloud Eurka注冊錯誤解決方案,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-07-07
Java數(shù)據(jù)結(jié)構(gòu)與算法之循環(huán)隊列的實現(xiàn)
循環(huán)隊列 (Circular Queue) 是一種特殊的隊列。循環(huán)隊列解決了隊列出隊時需要將所有數(shù)據(jù)前移一位的問題。本文將帶大家詳細了解循環(huán)隊列如何實現(xiàn),需要的朋友可以參考一下2021-12-12

