我正在尝试在活动调用onDestroy()时保存我的Serialized对象,但是当我尝试使用ObjectOutputStream编写我的对象时,会抛出java.io.NotSerializableExeption。
你能帮我吗?感谢答案 0 :(得分:0)
我遇到了同样的问题,并让这个类帮助序列化:
public class SerializableRect implements Serializable {
private static final long serialVersionUID = 1L;
private Rect mRect;
public SerializableRect(Rect rect) {
mRect = rect;
}
public Rect getRect() {
return mRect;
}
private void writeObject(java.io.ObjectOutputStream out) throws IOException {
int left = mRect.left;
int top = mRect.top;
int right = mRect.right;
int bottom = mRect.bottom;
out.writeInt(left);
out.writeInt(top);
out.writeInt(right);
out.writeInt(bottom);
}
private void readObject(java.io.ObjectInputStream in) throws IOException,
ClassNotFoundException {
int left = in.readInt();
int top = in.readInt();
int right = in.readInt();
int bottom = in.readInt();
mRect = new Rect(left, top, right, bottom);
}
}
答案 1 :(得分:0)
如果您的对象映射包含一个不可序列化的对象,则VM会查找无参数构造函数,以便使用默认值创建一个对象并继续。它不能抛出这个异常。底线是对象图中引用的每个对象都必须:
你没有提供足够的细节让我更进一步,但我还是不能为你写它?通常,您可以从不可序列化的类派生或包装它们并提供必要的功能。只要每个成员符合我列出的条件,就不应该抛出异常。
答案 2 :(得分:-1)
您需要确保该类实现java.io.Serializable
接口。另请考虑使用Bundles,并将数据保存在onSaveInstanceState
中。有关数据存储的更多信息,请参阅this dev guide topic。