具有重复注释的Java类。它';有可能吗?

具有重复注释的Java类。它';有可能吗?,java,reflection,annotations,Java,Reflection,Annotations,可以用相同的注释定义一个类两次吗 例如,我有@interface注释 @Annotation(value = 1) @Annotation(value = 2) public class MyClass{ } 您可以定义另一个注释@Annotations,其值是@annotation的数组: public @interface Annotations { public Annotation[] value(); } 它被用作 @Annotations ( { @Anotati

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

例如,我有@interface注释

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

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

public @interface Annotations
{
  public Annotation[] value();
}
它被用作

@Annotations
(
  {
    @Anotation(value = 1)
  , @Anotation(value = 2)
  }
)
public class MyClass {
}

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

public @interface Annotations
{
  public Annotation[] value();
}
它被用作

@Annotations
(
  {
    @Anotation(value = 1)
  , @Anotation(value = 2)
  }
)
public class MyClass {
}

是的,您需要定义包装器批注:

@Retention(RetentionPolicy.RUNTIME)
@Documented
@Target({ElementType.TYPE})
public @interface AnotationList {
    Anotation[] value () default {};
}
然后你可以这样使用它:

@AnotationList({
    @Anotation(value = 1),
    @Anotation(value = 2)
})
public class MyClass{
}

是的,您需要定义包装器批注:

@Retention(RetentionPolicy.RUNTIME)
@Documented
@Target({ElementType.TYPE})
public @interface AnotationList {
    Anotation[] value () default {};
}
然后你可以这样使用它:

@AnotationList({
    @Anotation(value = 1),
    @Anotation(value = 2)
})
public class MyClass{
}

还没有。我稍后会尝试,但现在我正处于设计阶段。谢谢你就我所记得的(我不久前也有同样的问题)这是不可能的。但是,您可以定义另一个注释
@Annotations
,其值是
@annotation
的数组。例如,在JPAIt中完成此操作可能需要一分钟的时间来尝试?也许更少?设计时并不一定意味着卸载javac。尽管如此,还是要感谢回答者们,他们采取了额外的步骤,回答了下面的问题(“我如何绕过这个限制?”)。Java 8的可能副本是语言的一个内置部分。还没有。我稍后会尝试,但现在我正处于设计阶段。谢谢你就我所记得的(我不久前也有同样的问题)这是不可能的。但是,您可以定义另一个注释
@Annotations
,其值是
@annotation
的数组。例如,在JPAIt中完成此操作可能需要一分钟的时间来尝试?也许更少?设计时并不一定意味着卸载javac。尽管如此,还是要感谢回答者,他们采取了额外的步骤并回答了后续问题(“我如何绕过该限制?”)。Java 8的可能副本是语言的内置部分。在中不再(显式)需要它。在中不再(显式)需要它。