大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java中怎么自定義注解

Java中怎么自定義注解

更新時間:2020-02-17 13:27:33 來源:動力節點 瀏覽2583次


Java中怎么自定義注解


  在Java框架中,經常會使用注解,而且還可以省很多事,來了解下自定義注解。


  注解是一種能被添加到java代碼中的元數據,類、方法、變量、參數和包都可以用注解來修飾。注解對于它所修飾的代碼并沒有直接的影響


  先寫一個自己的注解類


  @Documented//會被javadoc命令識別


  @Retention(RetentionPolicy.RUNTIME)//相當于作用時期,比如:運行期、編譯期


  @Target({ElementType.METHOD})//相當于作用域,比如方法、類


  public@interfaceMyValue{


  Stringvalue();


  //也可以這么寫,就是說,它的默認值是hello


  //Stringvalue()default"hello";


  }


  然后解析上邊用到的那兩個類:


  publicenumRetentionPolicy{


  SOURCE,


  CLASS,


  RUNTIME


  }


  publicenumElementType{


  /**Class,interface(includingannotationtype),orenumdeclaration*/


  TYPE,


  FIELD,


  METHOD,


  PARAMETER,


  CONSTRUCTOR,


  LOCAL_VARIABLE,


  ANNOTATION_TYPE,


  PACKAGE


  }


  可以看到,是兩個枚舉類,也就是我們自定義的注解有一定的時間和空間作用域。


  好了,我們的自定義注解已經完成了(對的,自定義注解就上邊那一段代碼),那我們就來看看要怎么有用呢?很容易啊,就和其他的注解一樣,寫在我們要用到的地方就好了。(對的,我確定不是在開玩笑)


  publicclassPerson{


  @MyValue(value="張三")


  privateStringname;


  /*


  為什么要寫setter和getter,很快你就會知道


  */


  publicStringgetName(){


  returnname;


  }


  publicvoidsetName(Stringname){


  this.name=name;


  }


  }


  然后我們在其他地方去拿


  Personperson=newPerson();


  System.out.println(person.getName());//null


  //這就很難受,按道理來說,不是應該是張三嗎?


  大家都知道,像Spring這種框架都是通過反射來實現的,我們就模擬一個“編譯類”,我們是在屬性上用的注解,所以就先用反射來拿到類的所有屬性


  publicstaticvoidmain(String[]args)throwsNoSuchFieldException{


  Personperson=newPerson();


  //按理來說,我們是拿到這個Person.class的所有的屬性,然后遍歷,來挨個注入,但是這里我們明明確我們的屬性名,所以就簡單化了


  Fieldfield=Person.class.getDeclaredField("name");


  MyValueannotation=field.getAnnotation(MyValue.class);//拿到注解類


  Stringname=annotation.value();//這個value()就是我們在MyValue類中的的屬性


  //然后我們就注入到這個類中,這時就用到了setter方法


  person.setName(name);


  System.out.println("通過自定義注解后的person的name是:"+person.getName());


  }


  是的,這樣我們就通過了自定義注解給Person注入了一個name屬性,但是在實際運用中不可能這么復雜,這只是入門了一下,我們可以將這個“模擬的編譯類”組裝成一個工具類,以便我們在實際中運用。


Java中怎么自定義注解


  以上就是動力節點Java培訓機構小編介紹的“Java中怎么自定義注解”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 爱操在线| 久久综合精品国产一区二区三区 | 韩国 欧美 日产 国产精品 | 99re这里只有精品在线观看 | 日日夜夜网站 | 91尤物国产尤物福利 | 成人在线毛片 | 看全色黄大色黄大片色责看的 | 国产精品福利视频手机免费观看 | 香蕉视频在线观看国产 | 亚洲天天做夜夜做天天欢人人 | 天天射影院 | 超级碰碰青草久热国产 | 一本久道久久综合中文字幕 | 91尤物国产尤物福利 | 一区二区三区亚洲视频 | 欧美亚洲免费 | 欧美毛片免费 | 香蕉视频在线看 | 天天爽夜夜爽夜夜爽精品视频 | 曰鲁夜鲁鲁狠狠综合 | 欧美日韩精选 | 九九re| 欧美精品专区免费观看 | 精品一久久香蕉国产线看播放 | 亚洲欧洲精品成人久久曰 | 久久精品国产只有精品2020 | 国产精品香蕉成人网在线观看 | 私人影院免费观看 | 91成品视频 | 久久69 | 欧美一级片网址 | 国产一区亚洲二区三区 | 国产福利福利视频 | 一级毛片aaa片免费观看 | 亚洲码和乱人伦中文一区 | 91国语精品自产拍在线观看一 | 四虎国产精品永久一区 | 国产精品2020在线看亚瑟 | 四虎网站网址 | 337p粉嫩大胆色噜噜噜 |