![](/img/trans.png)
[英]Java RuntimeException for serializable object with Serializable and Custom Interface
[英]How do I implement Java Serializable interface for custom linkedlist(tree) object?
我正在嘗試使用ObjectOutputStream
將填充的樹寫入文件,但是我正在獲取java.io.NotSerializableException
。
// build Huffman trie
HuffNode root = buildTrie(freq);
try{
FileOutputStream saveFile=new FileOutputStream("SaveObj.sav");
ObjectOutputStream save = new ObjectOutputStream(saveFile);
save.writeObject(root);
save.close();
} catch(Exception exc){
exc.printStackTrace();
}
這是我的樹班
private class HuffNode implements Comparable<HuffNode> , Serializable {
private final char ch;
private final int freq;
private final HuffNode left, right;
HuffNode(char ch, int freq, HuffNode left, HuffNode right) {
this.ch = ch;
this.freq = freq;
this.left = left;
this.right = right;
}
// is the node a leaf node?
private boolean isLeaf() {
assert ((left == null) && (right == null)) || ((left != null) && (right != null));
return (left == null) && (right == null);
}
// compare, based on frequency
public int compareTo(HuffNode that) {
return this.freq - that.freq;
}}
為什么序列化不起作用?
HuffNode
是您尚未向我們展示的其他一些類的內部類。
內部類的實例保留了封閉類的實例。 如果封閉的類不是可Serializable
這將阻止內部類的實例被序列化。
HuffNode
可能應該是靜態的嵌套類。
private static class HuffNode implements Comparable<HuffNode> , Serializable
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.