Как пропустить вызов аннотации на основе флага в том же классе
У меня есть пара аннотаций на геттере, как показано ниже. Я хотел бы пропустить все вызовы аннотаций для геттера на основе логического значения в том же классе. Есть ли способ сделать это?
@MyAnnotation1(message = "{someMessage1}")
@MyAnnotation2(message = "{someMessage2}")
public Date getFromDate() {
return fromDate;
}
1 ответ
Решение
Вы можете определить другую аннотацию как @Ignore
в этом поле, если установлено это аннотированное поле, вы можете просто игнорировать обработку аннотаций.
@Ignore
private boolean value;
Вы можете определить свою собственную аннотацию как
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
/**
* This Annotation should be used on boolean field to set specify whether annotation processing should be ignored for that class
*/
public @interface Ignore {
}
Помните, что это пользовательская аннотация, поэтому вам нужно написать код для ее обработки
PS Примечание: если вы пишете пользовательские аннотации. И там обработка.