軟件工程實踐者

          統(tǒng)計

          留言簿

          友情鏈結

          閱讀排行榜

          評論排行榜

          2016年9月6日 #

          Java 8 Repeatable注解的使用

          Java 8之前,同一注解不能在相同的目標元素上多次使用,例如,如下的注解在Java 8之前是不允許的:
          public class SampleClass {
              
              @Quality("Security")
              @Quality("Performance")
              @Quality("Readability")
              public void foo(){
                  //
              }
          }

          Java 8引入了Repeatable注解(@Repeatable)可以解決這一問題,但光有可重復的注解定義還不夠,還需要它的容器注解,兩者一起來實現(xiàn)可重復注解的使用。實例如下:
          @Target(ElementType.METHOD)
          @Retention(RetentionPolicy.SOURCE)
          @Repeatable (Qualities.class)
          public @interface Quality {
              String value();
          }
          @Target(ElementType.METHOD)
          public @interface Qualities {
              Quality[] value();
          }

          其中,Quality是可重復注解,由@Repeatable注解標明,它的容器注解是Qualities,用于存放所有可重復的Quality(存貯在Quality[]中);同時還要注意可重復注解和它的容器注解的目標元素必須是一樣的(這也不言自明)。如此這般,我們最開始的 SampleClass 在Java 8環(huán)境下就可以安全使用了。


          posted @ 2016-09-06 16:24 軟件工程實踐者 閱讀(832) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 化德县| 库车县| 麻城市| 斗六市| 炎陵县| 集贤县| 驻马店市| 峡江县| 璧山县| 翁牛特旗| 海伦市| 诸城市| 肥城市| 靖安县| 藁城市| 高雄市| 嘉黎县| 辰溪县| 荆州市| 旬邑县| 西林县| 阿拉善左旗| 天水市| 全州县| 西畴县| 湘乡市| 贵港市| 玛纳斯县| 大余县| 东乡族自治县| 房山区| 固安县| 彝良县| 翼城县| 肇州县| 巴里| 临武县| 惠来县| 宜城市| 连江县| 丹东市|