0

マップをファイルに保存しようとしていますが、java.io.NotSerializableException. これは、クラスに Serializable を実装する必要があることを意味します。問題は、Serializable が実装されていてもエラーがスローされることです。

格納するコード:

private void storePoints(Map<String,WifiPoint> list) throws IOException{
    // store in file
    FileOutputStream fos = context.openFileOutput("points", Context.MODE_PRIVATE);
    ObjectOutputStream os = new ObjectOutputStream(fos);
    os.writeObject(list);
    os.close();
}

Wifi ポイント:

public class WifiPoint implements Serializable{
    private static final long serialVersionUID = 2;
    public String ssid;
    public String bssid;
    public String capabilities;
    public double latitude;
    public double longitude;
    public int level;
}

更新: 本当の修正は次のとおりです: WifiPoint を別のクラス内で宣言するのではなく、別のファイルで宣言する必要がありました。

申し訳ありませんが、誰もが正しい答えを得るためにコードを適切に配置していませんでした

4

5 に答える 5

2

使用しているMapMapクラスがSerializable

注:AHashMapSerializableですので、可能であればそれに切り替えてください。

于 2013-02-21T13:57:07.223 に答える
1

別のクラス内で宣言するのではなく、別のファイルで WifiPoint を宣言する必要がありました。

于 2013-02-22T16:57:18.117 に答える