我有一个对象如下:
public class Records implements java.io.Serializable{
private int cId;
private int pId;
private int vlaue;
private int tag;
public Records(int c, int p, int v, int t){
this.cId=c;
this.pId=p;
this.value=v;
this.tag=t;
}
}
我已经收集了大量数据,在上面的类中构造了对象并将它们序列化到磁盘。
我忘记包含在类文件中的一件事是访问每个对象的值的方法。例如,访问特定对象的 cId 值。
我修改了类定义以添加此类方法,但后来我无法将对象反序列化回 Records 类并得到此运行时错误:
java.io.InvalidClassException: Records; local class incompatible: stream classdesc serialVersionUID = -1232612718276774474, local class serialVersionUID = -8244963718951538904
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:579)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1600)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1513)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1749)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
at DeSerialise.main(DeSerialise.java:21)
我想我需要告诉java它们是相同的定义并修改serialVersionUID但不太确定如何?任何想法都会受到欢迎!