我不明白为什么Java注释中没有继承,就像Java类一样.我认为这将非常有用.
例如:我想知道给定的注释是否是验证器.通过继承,我可以反复地浏览超类,以了解此注释是否扩展了ValidatorAnnotation.否则,我该怎样才能做到这一点?
那么,任何人都可以给我这个设计决定的理由吗?
我认为这在Java中是不可能的,因为注释及其参数在编译时被解析.我有一个如下界面,
public interface FieldValues {
String[] FIELD1 = new String[]{"value1", "value2"};
}
Run Code Online (Sandbox Code Playgroud)
和另一个班级,
@SomeAnnotation(locations = {"value1", "value2"})
public class MyClass {
....
}
Run Code Online (Sandbox Code Playgroud)
我用注释标记了很多类,我想知道我是否可以避免在每个注释中指定字符串而我更愿意使用
@SomeAnnotation(locations = FieldValues.FIELD1)
public class MyClass {
....
}
Run Code Online (Sandbox Code Playgroud)
但是这会产生编译错误,例如注释值应该是数组初始化器等.有人知道如何使用String常量或String []常量来为注释提供值吗?