Если у меня есть такая аннотация:
public @interface MyAnnotaton{ String className(): Class clazz(); }
что я должен сделать, чтобы ограничить установку элемента className, если установлен элемент clazz?
Укажите значение по умолчанию для одного из элементов, а в вашем коде AnnotationProcessor необходимую логику для определения того, какой элемент должен быть обработан
public @interface MyAnnotation { Class clazz(); String className() default "<none>"; }
Я бы сказал, что это невозможно - аннотации не являются исполняемым кодом и по сути не имеют любой логики. Либо остановитесь на одном из двух, либо выберите тот, который имеет приоритет, и соответствующим образом задокументируйте аннотацию.