Как пропустить вызов аннотации на основе флага в том же классе

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

@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 Примечание: если вы пишете пользовательские аннотации. И там обработка.

Другие вопросы по тегам