【发布时间】:2013-02-06 21:09:00
【问题描述】:
我正在尝试将地图保存到文件中,但我收到了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();
}
Wifipoint:
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,而不是在另一个类中声明它。
抱歉,我没有正确输入代码以便任何人得到正确答案
【问题讨论】:
-
请发送堆栈跟踪。并检查您的
Map的具体实现是什么。可能它是不可序列化的。 -
等等,我认为需要一个构造函数?
-
不,你不需要构造函数。看看 cowls 的回答(也是 AlexR)
-
是的,这很可能是地图的问题。
标签: java android serializable