我有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
中看到null
有时为getServiceStub
我很困惑何时可以在sessionVars
中使用ClientBeanBase
?
答案 0 :(得分:1)
您可以随时使用sessionVars
。
transient
关键字唯一能做的就是告诉JVM在对象序列化的情况下不要序列化该特定字段。换句话说,重新创建对象时,它将重置为默认值。
答案 1 :(得分:0)
您可能已经知道序列化中会跳过瞬态变量。你可以随时引用它,但是你需要在使用之前初始化sessionVars,你可以在构造函数中设置它。
答案 2 :(得分:0)
如果你在本地访问实例,我的意思是在没有rmi的相同jvm下,瞬态变量将显示该值。但是如果您正在编组实例,那么您将看到这些变量的空值。