eke*_*ren 5 java serialization
我想在我的应用程序中更改多个类的包。一个不错的 eclipse redactor 很好,但我的一些类是可序列化的,我需要支持跨版本兼容性。
关于如何做到这一点的任何想法?可以自动/半自动完成吗?
如果类结构保持不变,您可以子类化自定义 ObjectInputStream,调用enableResolveObject(true)其构造函数,然后readClassDescriptor()使用类似的内容进行覆盖:
protected ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException {
ObjectStreamClass read = super.readClassDescriptor();
if (read.getName().startsWith("com.old.package.")) {
return ObjectStreamClass.lookup(Class.forName(read.getName().replace("com.old.package.", "org.new.package.")));
}
return read;
}
Run Code Online (Sandbox Code Playgroud)