Quantcast
Channel: BlogJava-软件工程实践者
Viewing all articles
Browse latest Browse all 10

Java 8 Repeatable注解的使用

0
0
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环境下就可以安全使用了。





Viewing all articles
Browse latest Browse all 10

Latest Images

Trending Articles





Latest Images