此規則會標示在以 @SessionScoped 標註的類別內具有 transient 修飾元的欄位。在 Contexts and Dependency Injection (CDI) 1.0 OpenWebBeans 實作中,應用程式可以在階段作業範圍 Bean 中直接設定 transient 欄位。在 CDI 1.2 Weld 實作中,直接設定 transient 欄位並不會導致失效接手之後在此欄位中移入資料,從而可能導致應用程式中發生非預期的行為。
請確認僅使用所含類別提供的方法,來設定此規則所標示的每個 transient 欄位。如果此欄位沒有設定方法,請新增並呼叫設定方法,而不要直接設定此欄位。
在下列範例中,將以 @SessionScoped 標註 UserBean 類別。此類別還包含一個欄位,其中具有使用 setter 方法設定的 transient 修飾元。
@Named(值 = "userBean")
@SessionScoped public class UserBean implements UserInterface, Serializable {
字串名稱; 暫時性字串 nickName;
。。。
public void setNickName (String nick) {
nickName = nick;
} }
如需 Java Platform Enterprise Edition (Java EE) 7 CDI 1.2 實作的相關資訊,請參閱 Contexts and Dependency Injection 1.2 行為變更。