【发布时间】:2011-01-27 00:04:14
【问题描述】:
public class MyObj implements Serializable {
private transient Map<String, Object> myHash = new HashMap<String, Object>();
...
}
有什么方法可以保证当上述类的对象被反序列化时,成员myHash会被设置为一个新的空Map而不是设置为null?
【问题讨论】:
-
不是已经设置默认值了吗?这是单例类吗?
-
@fatih 反序列化不会调用您的构造函数或字段初始值设定项。这是一个重要的教训,它可以为您节省数小时的麻烦,调试看似好的代码,但突然停止工作。
-
它不会调用任何函数或构造函数,但显然它也没有执行类范围初始化的对象初始化。每天学习新事物。谢谢。
标签: java serialization