首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将对象的瞬态成员反序列化为Java中的非空默认值

将对象的瞬态成员反序列化为Java中的非空默认值
EN

Stack Overflow用户
提问于 2011-01-27 08:04:15
回答 2查看 10.6K关注 0票数 22
代码语言:javascript
复制
public class MyObj implements Serializable {
  private transient Map<String, Object> myHash = new HashMap<String, Object>();
  ...
}

有没有办法确保当上面类的对象被反序列化时,成员myHash将被设置为一个新的空映射,而不是被设置为null?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-27 08:10:34

代码语言:javascript
复制
public class MyObj implements Serializable {
    private transient Map<String, Object> myHash = new HashMap<String, Object>();

    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
        in.defaultReadObject();

        myHash = new HashMap<String, Object>();
    }
}
票数 34
EN

Stack Overflow用户

发布于 2011-01-27 08:27:22

添加一个像这样的readObject方法怎么样:

代码语言:javascript
复制
public class MyObj implements Serializable {
  private transient Map<String, Object> myHash = new HashMap<String, Object>();
  ...
  private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
    in.defaultReadObject();     
    myHash = new HashMap<String, Object>();
  }
}

这应该会解决你的问题。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4811615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档