我想创建一个自定义注释(使用Java),它将接受其他注释作为参数,如:
public @interface ExclusiveOr { Annotation[] value(); }
但这会导致编译器错误"注释成员的无效类型".
对象[]也不起作用.
有办法做我想要的吗?
产生错误是因为您不能将接口用作注释值(将其更改为Comparable
,您将得到相同的错误).来自JLS:
如果在注释类型中声明的方法的返回类型是除以下之一之外的任何类型,则为编译时错误:其中一个基本类型
String
,Class
以及任何调用Class
,枚举类型,注释类型或前面类型之一的数组.如果在注释类型中声明的任何方法具有覆盖等同于在类或接口中声明的任何public
或protected
方法的签名,则它也是编译时错误.Object
annotation.Annotation
我担心我不知道一个好的解决方法,但现在至少你知道为什么你会得到错误.