欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java  自定義注解的實(shí)例詳解

 更新時(shí)間:2017年09月23日 13:06:54   投稿:lqh  
這篇文章主要介紹了java 自定義注解的實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下

java  自定義注解的實(shí)例詳解

Java的Annotation是在5.0版本之后引入的,可以用于創(chuàng)建文檔,跟蹤代碼中的依賴性,并且可以執(zhí)行編譯時(shí)期檢查。注解就是給虛擬機(jī)看的,代表程序的一些特殊的功能。JDK中提供了@Override,@SuppressWarning,@Deprecated三種注解,當(dāng)讓還有元注解,@Target,@Retention,@Documented,@Inherited,元注解的作用負(fù)責(zé)注解其它注解。

    要想了解注解,就要了解自定義注解,了解是通過反射來實(shí)現(xiàn)的。

    首先,我們先自定義一個(gè)注解,

@Retention(value=RetentionPolicy.RUNTIME) 
public @interface MyTest { 
 
} 

   接著再寫一個(gè)測試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注解的方法運(yùn)行,接下來是運(yùn)行類

public class DemoRunner { 
public static void main(String[] args) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, InstantiationException {  
    //獲得測試類的class 
    Class clazz=AnnotationDemo1.class; 
    //獲得class中的所有的方法 
    Method[] mothods=clazz.getMethods(); 
    //遍歷每個(gè)方法, 
    for(Method method:mothods){ 
      boolean flag = method.isAnnotationPresent(MyTest.class); 
       System.out.println(flag); 
      if(flag){ 
        // 說明方法上有MyTest注解: 
        method.invoke(clazz.newInstance(), null); 
      } 
    } 
  } 
} 

  最后測試就能輸出方法1...和方法2了...,這樣也就簡單實(shí)現(xiàn)自定義注解了。

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • 如何使用IDEA創(chuàng)建MAPPER模板過程圖解

    如何使用IDEA創(chuàng)建MAPPER模板過程圖解

    這篇文章主要介紹了如何使用IDEA創(chuàng)建MAPPER模板,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • java輸出1~100之間的全部素?cái)?shù)的5種方式總結(jié)

    java輸出1~100之間的全部素?cái)?shù)的5種方式總結(jié)

    這篇文章主要介紹了java輸出1~100之間的全部素?cái)?shù)的5種方式總結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java實(shí)現(xiàn)同步枚舉類數(shù)據(jù)到數(shù)據(jù)庫

    Java實(shí)現(xiàn)同步枚舉類數(shù)據(jù)到數(shù)據(jù)庫

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)同步枚舉類數(shù)據(jù)到數(shù)據(jù)庫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • MyBatis傳入List集合查詢數(shù)據(jù)問題

    MyBatis傳入List集合查詢數(shù)據(jù)問題

    這篇文章主要介紹了MyBatis傳入List集合查詢數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • SpringBoot使用AOP記錄接口操作日志的方法

    SpringBoot使用AOP記錄接口操作日志的方法

    日志記錄量是很大的,所以只記錄關(guān)鍵地方并按期歸檔,最好是存在如elasticsearch中,如果存在數(shù)據(jù)庫中,分表是不錯的選擇,這篇文章主要介紹了SpringBoot使用AOP記錄接口操作日志的方法,需要的朋友可以參考下
    2022-08-08
  • Java foreach相關(guān)原理及用法解析

    Java foreach相關(guān)原理及用法解析

    這篇文章主要介紹了Java foreach相關(guān)原理及用法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Java lombok中@Accessors注解三個(gè)屬性的作用

    Java lombok中@Accessors注解三個(gè)屬性的作用

    這篇文章主要介紹了Java?lombok的@Accessors注解屬性解析,該注解主要作用是:當(dāng)屬性字段在生成?getter?和?setter?方法時(shí),做一些相關(guān)的設(shè)置,需要的朋友可以參考下
    2023-05-05
  • 聊一聊Java反射

    聊一聊Java反射

    工作中哪些地方比較容易用到反射,這篇文章就為大家介紹了工作中常用到的Java反射,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • 解讀CompletableFuture的底層原理

    解讀CompletableFuture的底層原理

    本文探討了Java8中CompletableFuture的原理和應(yīng)用,詳解其異步編程能力、工作機(jī)制及實(shí)際使用方法,CompletableFuture通過鏈?zhǔn)秸{(diào)用和狀態(tài)管理優(yōu)化異步任務(wù),提高Java應(yīng)用的效率和性能
    2024-09-09
  • SpringBoot攔截器的配置使用介紹

    SpringBoot攔截器的配置使用介紹

    攔截器可以用來實(shí)現(xiàn)未滿足某些條件,不容許訪問某些資源。SpringBoot 支持?jǐn)r截器,本文主要介紹攔截器的使用與原理
    2022-10-10

最新評論