我正在尝试在Java中创建自定义注释,问题是是否可以使用“注释数组”类型的元素创建自定义注释,并且此数组中的每个元素都来自不同类型。
例如:
@MyCustomArrayOfAnnotation({@MyCustomAnnotationType1, @MyCustomAnnotationType2})
如果可能,我该如何声明此自定义注释?
答案 0 :(得分:2)
这是不可能的。
Java Language Specification, section 9.6.1表示注释元素/成员可以是以下类型:
String
Class
这表明注释可能包含注释数组。
但是,注释中没有子类型。因此,注释只能包含同构数组,而不是异构数组。
同构数组(允许)的一个例子是
@MyCustomArrayOfAnnotation({@MyCustomAnnotationType1("a"),
@MyCustomAnnotationType1("b")})
异构数组(不允许)的示例就是您的示例:
@MyCustomArrayOfAnnotation({@MyCustomAnnotationType1,
@MyCustomAnnotationType2})