EN
Java - Exception in thread "main" java.io.InvalidClassException: logic.User; class invalid for deserialization
1 answers
4 points
I would like to write program that deserialize object using ObjectInputStream
class but it throws exception, even if ObjectOutputStream
class was used to serialize object.
Exception details:
xxxxxxxxxx
1
Exception in thread "main" java.io.InvalidClassException: logic.User; class invalid for deserialization
2
at java.base/java.io.ObjectStreamClass$ExceptionInfo.newInvalidClassException(ObjectStreamClass.java:159)
3
at java.base/java.io.ObjectStreamClass.checkDeserialize(ObjectStreamClass.java:875)
4
at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2170)
5
at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1679)
6
at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:493)
7
at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:451)
8
at logic.Program.main(Program.java:20)
1 answer
7 points
Do you have defined static final long serialVersionUID
filed at the beginning in your User
class? If not, try to use some random value there.
That filed is used to identify the object, preventing against type mistakes when we serialize and deserialize object to binary.
Example:
xxxxxxxxxx
1
class User {
2
3
private static final long serialVersionUID = 1406927626238015433L;
4
5
6
// ...
7
}
Practical example is avaialble here.
0 commentsShow commentsAdd comment