-1

我有Serialized一些transient成员的班级。我不确定如何使用这些成员。

public class ClientBeanBase extends BeanBase 
{

  protected REWSStubClient getServiceStub( boolean initSession ) 
  {     
    REWSStubClient stub = null;

    stub = (REWSStubClient) sessionVars.get(Constants.SESSION_KEY_STUB)             

    ...
}

我的基类是:

public class BeanBase implements Serializable
{
  protected transient Map<String,Object> sessionVars = ...;
  ...
}

我看到sessionVars有时nullgetServiceStub.
我对什么时候可以使用sessionVarsin感到困惑ClientBeanBase

4

3 回答 3

1

您可以随时使用sessionVars

该关键字唯一要做的transient就是告诉 JVM 在对象序列化的情况下不要序列化该特定字段。换句话说,当对象被重新创建时,它将被重置为默认值。

于 2013-05-09T11:30:15.693 回答
0

您可能已经知道在序列化中会跳过瞬态变量。您可以随时引用它,但您需要在使用前初始化 sessionVars,您可以在构造函数中设置它。

于 2013-05-09T11:30:57.917 回答
0

如果您在本地访问实例,我的意思是在没有 rmi 的同一个 jvm 下,瞬态变量将显示该值。但是,如果您正在编组实例,那么您将看到这些变量为 null。

于 2013-05-09T11:32:16.773 回答