0

可以用相同的注释定义一个类两次吗?

例如,我有我的@interface 注释

@Annotation(value = 1)
@Annotation(value = 2)
public class MyClass{
}
4

2 回答 2

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{
}
于 2013-03-14T08:51:44.510 回答
2

您可以定义另一个注释@Annotations,其值是一个数组@Annotation

public @interface Annotations
{
  public Annotation[] value();
}

它被用作

@Annotations
(
  {
    @Anotation(value = 1)
  , @Anotation(value = 2)
  }
)
public class MyClass {
}
于 2013-03-14T08:51:18.430 回答