0

我不知道为什么 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();
4

1 回答 1

0

解决了。这是因为如果具有 static 修饰符,则内部类是可序列化的。

于 2013-08-08T08:58:50.130 回答