![](/img/trans.png)
[英]Deserialize a transient member of an object to a non-null default use Kryo
[英]Deserialize a transient member of an object to a non-null default in Java
public class MyObj implements Serializable {
private transient Map<String, Object> myHash = new HashMap<String, Object>();
...
}
有没有办法确保当上一个类的对象被反序列化时,成员myHash将被设置为一个新的空Map而不是设置为null?
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>();
}
}
如何添加这样的readObject方法:
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>();
}
}
那应该是你排除。
您可以实现自己的自定义readIn
方法,并显式创建一个新的Map<T>
如Java Serializable文档中所述 。 那篇文章应该描述如何做你正在寻找的东西; 查看标题为“ 自定义默认协议”的部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.