此規則會標示符合下列條件的自訂註釋中的 @Target 值(而非 ElementType.TYPE):
@InterceptorBinding 標註自訂註釋。@Interceptor 標註的類別中使用自訂註釋。以下是生命週期攔截程式註釋:
下列範例不符合 Java EE 7 Contexts and Dependency Injection (CDI) 1.2 規格,但在以 Apache OpenWebBeans 實作為基礎的 CDI 1.0 實作中容忍此範例。在以 Weld 實作為基礎的 CDI 1.2 中,應用程式不會啟動。
@InterceptorBinding @Retention(RetentionPolicy。RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD}) public @interface MyIInterceptorBinding {}
@Interceptor @MyIInterceptorBinding public class MyIInterceptor {
@PostActivate
void postActivate (InvocationContext inv)
@PreDestroy
void preDestroy (InvocationContext inv)
}
若要解決此問題,請從 @Target 註釋中移除 ElementType.METHOD,並在應用程式方法中移除對此註釋的所有參照。
如果指定了除 ElementType.TYPE 以外的任何元素類型,則還必須移除這些元素類型。
如需 Java EE 7 CDI 1.2 實作的相關資訊,請參閱 Contexts and Dependency Injection 1.2 行為變更。