Как исключить элемент аннотации, если задано другое - PullRequest
2 голосов
/ 03 октября 2011

Если у меня есть такая аннотация:

public @interface MyAnnotaton{

   String className():

   Class clazz();

}

что я должен сделать, чтобы ограничить установку элемента className, если установлен элемент clazz?

Ответы [ 2 ]

4 голосов
/ 03 октября 2011

Укажите значение по умолчанию для одного из элементов, а в вашем коде AnnotationProcessor необходимую логику для определения того, какой элемент должен быть обработан

public @interface MyAnnotation {
   Class clazz();
   String className() default "<none>";
}
1 голос
/ 03 октября 2011

Я бы сказал, что это невозможно - аннотации не являются исполняемым кодом и по сути не имеют любой логики. Либо остановитесь на одном из двух, либо выберите тот, который имеет приоритет, и соответствующим образом задокументируйте аннотацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...