適用於生命週期回呼的攔截程式可能會僅宣告定義為 @Target(TYPE) 的攔截程式連結類型

此規則會標示符合下列條件的自訂註釋中的 @Target 值(而非 ElementType.TYPE):

以下是生命週期攔截程式註釋:

下列範例不符合 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 行為變更