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 に答える