[英]Java interfaces in annotation value
为什么Java编译器不允许在注释中使用接口?
我可以在注释中使用枚举:
public @interface SomeAnnotation {
SomeEnum[] value() default {};
}
我可以在枚举中实现一个接口:
public enum SomeEnum implements SomeInterface {
NAME1, NAME2;
}
但我不能在注释中使用接口:
public @interface SomeAnnotation {
SomeInterface[] value() default {};
}
相当令人沮丧...
因为接口不是有效的返回类型,所以按照JLS ,以注释类型声明的方法的返回类型必须为以下值之一,否则会发生编译时错误:
原始类型
串
类或类的调用(第4.5节)
枚举类型
注释类型
数组类型,其组件类型为前述类型之一(第10.1节)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.