【发布时间】:2012-01-24 12:15:28
【问题描述】:
嘿,当我尝试将对象保存到内部存储时。我不断收到错误 NotSerializableException 说我需要序列化矩阵所以我可以继续这样做吗?
【问题讨论】:
-
如果你得到 NotSerializableException,你需要让你的矩阵类可序列化 fx。:实现一些接口......谷歌会帮助
标签: android serialization
嘿,当我尝试将对象保存到内部存储时。我不断收到错误 NotSerializableException 说我需要序列化矩阵所以我可以继续这样做吗?
【问题讨论】:
标签: android serialization
这取决于您在谈论哪个 Matrix 类,如果是 android.graphics.Matrix,则必须使用 getValues() 来获取包含值的数组并对其进行序列化,然后再加载数据您创建一个新的 Matrix 并以数组作为参数调用 setValues()。
【讨论】:
用这个类替换android.graphics.Matrix,它是可序列化的:
public class SerializableMatrix extends Matrix implements Serializable {
private static final long serialVersionUID = 0L;
private void writeObject(java.io.ObjectOutputStream out)
throws IOException {
float[] f = new float[9];
this.getValues(f);
out.writeObject(f);
}
private void readObject(ObjectInputStream in)
throws IOException, ClassNotFoundException {
float[] f = new float[9];
f = (float[]) in.readObject();
this.setValues(f);
}
}
【讨论】: