オブジェクトを.serファイルに読み書きしようとしています。このオブジェクトは、別のオブジェクトと整数の配列で構成されます。このよう は:デシリアライズ時にローカルクラスが互換性がありません
public class Ranking implements Serializable{
private static ArrayList<Acabada> partides = new ArrayList<Acabada>();
private int tipus_ordenacio;
}
serialitzationを使用して、コードが動作しているようです。生成されたファイルを開くと、いくつかの不確実なものが現れます。 しかし、(直列化復元)を足すとき、私はこのメッセージが表示されます。
tipusのordenaciooの1java.io.InvalidClassException:domain.Ranking。ローカルクラス非互換:ストリームclassdescのserialVersionUID = 5620111485391998837、ローカルクラスのserialVersionUID = -3886134201979592842
これは私がデシリアライズするために使用するコードです。
public void readFromFile() {
try {
FileInputStream fis = new FileInputStream("ranking.ser");
ObjectInputStream ois = new ObjectInputStream(fis);
domain.Ranking ranking = (domain.Ranking) ois.readObject();
ois.close();
fis.close();
}
catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
私が間違って何をしているのですか? ありがとう!
https://stackoverflow.com/questions/285793/what-is-a-serialversionuid-and-why-should-i-use -それ –