軟件工程實踐者

          統計

          留言簿

          友情鏈結

          閱讀排行榜

          評論排行榜

          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)可以解決這一問題,但光有可重復的注解定義還不夠,還需要它的容器注解,兩者一起來實現可重復注解的使用。實例如下:
          @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環境下就可以安全使用了。


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

          主站蜘蛛池模板: 定州市| 金山区| 永城市| 四川省| 新昌县| 曲松县| 武汉市| 武胜县| 辉南县| 中山市| 广东省| 湛江市| 电白县| 合江县| 永顺县| 比如县| 夹江县| 南乐县| 双鸭山市| 沙河市| 巩留县| 定陶县| 阜城县| 平安县| 宜章县| 张家川| 北碚区| 元氏县| 余庆县| 三河市| 都昌县| 英德市| 湾仔区| 本溪| 兴化市| 靖江市| 江陵县| 涡阳县| 临海市| 嘉定区| 巴彦县|