如果你想重复注释java 8允许这样做。
示例:
@Retention(RetentionPolicy.RUNTIME)
@Repeatable(MyAnnotationContainer.class)
@interface MyAnnotation {
String value();
}
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotationContainer {
MyAnnotation[] value();
}
@MyAnnotation( "a")
@MyAnnotation( "b")
class MyClass {
}
在描述中我已经读过,它只是提示java编译器生成代码。
请说明这段代码在java 5-7中的外观如何?
答案 0 :(得分:6)
在Java 8之前,需要明确地包装注释,如下例所示:
@MyAnnotationContainer({
@MyAnnotation("a"),
@MyAnnotation("b")
})
class MyClass {
}
这也是通过反射API在运行时公开注释的方式。 Java 8仅为此显式包装添加了一些syntactic suggar,因为这是一个常见的用例。