軟件工程實踐者

          統計

          留言簿

          友情鏈結

          閱讀排行榜

          評論排行榜

          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 on 2016-09-06 16:24 軟件工程實踐者 閱讀(837) 評論(0)  編輯  收藏 所屬分類: Java Domain

          主站蜘蛛池模板: 乌审旗| 台江县| 玉山县| 从化市| 上犹县| 佛冈县| 报价| 大丰市| 灵川县| 榆林市| 城市| 望都县| 华阴市| 连山| 中超| 玉林市| 淮滨县| 双城市| 行唐县| 阿克陶县| 汉中市| 呈贡县| 莱芜市| 新密市| 买车| 镇平县| 塔城市| 南丹县| 手游| 望江县| 年辖:市辖区| 景德镇市| 陇西县| 崇义县| 呈贡县| 阿拉善右旗| 佛冈县| 洛扎县| 屏东市| 达拉特旗| 兴安盟|