Я кодирую с помощью GitHub с моим другом, и когда мы обновляем основной класс, IDE выдает нам следующую ошибку:
Exception in thread "main" java.io.InvalidClassException: Packages.contoCorrente; local class incompatible: stream classdesc serialVersionUID = -433050874178120905, local class serialVersionUID = -5213999116280532749
at java.base/java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:689)
at java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1958)
at java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1827)
at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2115)
at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1646)
at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:464)
at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:422)
at java.base/java.util.ArrayList.readObject(ArrayList.java:928)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1160)
at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2271)
at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2142)
at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1646)
at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:464)
at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:422)
at ObjectWrite.main(ObjectWrite.java:31)
Чтобы устранить проблему, я всегда удаляю основной объектный файл, таким образом, это может восстановить это. Я также прилагаю часть кода, касающуюся десериализации, в надежде, что кто-нибудь мне поможет.
public static void main(String[] args) throws Exception {
ArrayList<contoCorrente> contiCorrentiArray;
File file = new File("contiCorrenti");
if (file.exists()) {
FileInputStream fileIn = new FileInputStream(file);
ObjectInputStream fileObjIn = new ObjectInputStream(fileIn);
//noinspection unchecked
contiCorrentiArray = (ArrayList<contoCorrente>) fileObjIn.readObject();
fileObjIn.close();
fileIn.close();
} else {
contiCorrentiArray = new ArrayList<>();
}
System.out.println("Numero Conti Presenti: " + contiCorrentiArray.size() + "\n");