可以两次定义具有相同注释的类吗?
例如,我有@interface Annotation
@Annotation(value = 1)
@Annotation(value = 2)
public class MyClass{
}
答案 0 :(得分:3)
是的,您需要定义Wrapper-Annotation:
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Target({ElementType.TYPE})
public @interface AnotationList {
Anotation[] value () default {};
}
然后你可以像这样使用它:
@AnotationList({
@Anotation(value = 1),
@Anotation(value = 2)
})
public class MyClass{
}
答案 1 :(得分:2)
您可以定义另一个注释@Annotations
,其值为@Annotation
数组:
public @interface Annotations
{
public Annotation[] value();
}
用作
@Annotations
(
{
@Anotation(value = 1)
, @Anotation(value = 2)
}
)
public class MyClass {
}