【发布时间】:2010-10-18 15:11:51
【问题描述】:
class MyClass implements Serializable {
transient int myTransient;
//Other variables
}
当我恢复这个类时,我想手动初始化myTransient,否则我只想使用默认的序列化。
如何在不重写整个序列化机制的情况下将init() 方法注入对象恢复过程,就像Externalizable 会让我这样做?
【问题讨论】:
-
我想到了惰性初始化。这里有两个问题。如果您不使用锁定,您的变量可能会被初始化多次。如果你锁定,它可能会减慢你的应用程序。查看延迟初始化的双重检查锁定:cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html。 axtavt 的解决方案更好。
标签: java serialization