为什么java编译器不允许在注释中使用接口?
我可以在注释中使用枚举:
public @interface SomeAnnotation {
SomeEnum[] value() default {};
}
我可以在枚举中实现一个接口:
public enum SomeEnum implements SomeInterface {
NAME1, NAME2;
}
但我无法在注释中使用接口:
public @interface SomeAnnotation {
SomeInterface[] value() default {};
}
非常令人沮丧......
答案 0 :(得分:1)
因为接口不是有效的返回类型,所以根据JLS,注释类型中声明的方法的返回类型必须是以下之一,否则会发生编译时错误:
原始类型
字符串
类或类的调用(§4.5)
枚举类型
注释类型
一种数组类型,其组件类型是上述类型之一 (§10.1)。