我不知道为什么HashMap实例是可序列化的,并且扩展HashMap的类的实例不可序列化。
所以,这段代码有效:
HashMap<String,String> map=new HashMap<String,String>();
...
ByteArrayOutputStream out = new ByteArrayOutputStream();
ObjectOutputStream objOut = new ObjectOutputStream(out);
objOut.writeObject(map);
objOut.close();
这不起作用:
public class MyMap extends HashMap<String,String>{}
...
MyMap map=new MyMap();
...
ByteArrayOutputStream out = new ByteArrayOutputStream();
ObjectOutputStream objOut = new ObjectOutputStream(out);
objOut.writeObject(map);
objOut.close();
答案 0 :(得分:0)
解决。这是因为如果有静态修饰符,则内部类是可序列化的。