![](/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.