런타임이 아닐 시 어노테이션의 존재를 반영적으로 검사하려는 시도를 보고합니다.

보존 정책이 SOURCE 또는 CLASS(디폴트)로 설정된 어노테이션을 테스트하기 위해 Class.isAnnotationPresent()를 사용하면 항상 부정적인 결과가 발생합니다. 이러한 실수는 간과하기 쉽습니다.

예:


  {
    getClass().isAnnotationPresent(SourceAnnotation.class); //항상 false
  }

  @Retention(RetentionPolicy.SOURCE)
  @interface SourceAnnotation {}