Есть ли способ проверить достоверность аннотации в Java?Проверка аннотации (параметра) в Java?
Например я могу иметь аннотацию
public @interface Foo {
int number();
String name();
}
public @interface Foos {
Foo[] value();
/* Foos() {
for(int i=0; i<value().length; ++i) {
if(i != value()[i].number()) {
throw new IllegalArgumentException();
}
}
} */
}
Могу ли я тягот, что numbers
начинают с нуля и идти непрерывно?
(в примере выше я написал эту проверку в закомментированного конструктор аннотаций)
UPDATE
Некоторые образцы использования аннотаций:
// correctly annotated class
@Foos({@Foo(number=0, name="first"), @Foo(number=1,name="second")})
class MyCorrectAnnotatedClass {
}
// incorrectly annotated class 1
// number starts from 1 not form 0
@Foos({@Foo(number=1, name="first"), @Foo(number=2,name="second")})
class MyIncorrectAnnotatedClass1 {
}
// incorrectly annotated class 2
// number sequence has missed 1
@Foos({@Foo(number=0, name="first"), @Foo(number=2,name="second")})
class MyIncorrectAnnotatedClass2 {
}
Хотя я имел в виду разные вещи, которые вы думали, но из вашего ответа, вероятно, приходит, что ответ «невозможно». См. Мое обновление, пожалуйста: я имел в виду целостность аннотации проверки в каждом отдельном использовании, а не во всех случаях использования. Поскольку аннотации, созданные как независимые субъекты, последнее желание было бы незаконным. –