查找序列化对象的串行版本 UID
2022-09-02 02:17:26
有没有办法确定序列化 Java 对象的生成?serialVersionUID
问题是我序列化了一个对象,而没有显式指定 .现在,反序列化过程抱怨类不兼容。但是,我没有以使其不兼容的方式更改类。因此,我假设在类中指定 它存储在对象数据中就足够了。为此,我需要从序列化数据中读取 。serialVersionUID
serialVersionUID
serialVersionUID
有没有办法确定序列化 Java 对象的生成?serialVersionUID
问题是我序列化了一个对象,而没有显式指定 .现在,反序列化过程抱怨类不兼容。但是,我没有以使其不兼容的方式更改类。因此,我假设在类中指定 它存储在对象数据中就足够了。为此,我需要从序列化数据中读取 。serialVersionUID
serialVersionUID
serialVersionUID
这对我有用:
long serialVersionUID = ObjectStreamClass.lookup(YourObject.getClass()).getSerialVersionUID();
希望它也能帮助你。
有一个简单的方法可以找到类的串行版本UID -
假设您有一个类,您忘记提及串行版本UID-
import java.io.Serializable;
public class TestSerializable implements Serializable {
}
就这么做——
serialver -classpath . TestSerializable
这打印-
static final long serialVersionUID = 5832063776451490808L;
serialver 是 JDK 附带的实用程序