我正在尝试在 Java 中序列化一个不可序列化的对象。一个标准的解决方案是为该类实现 writeObject 和 readObject 方法。
但是,在我的情况下,要序列化的对象的类位于 JAR 文件中,因此我无法更改它以实现 readObject 和 writeObject 方法。
此外,JAR 中的类是最终类。
在这种情况下有没有办法序列化一个对象?
我正在尝试在 Java 中序列化一个不可序列化的对象。一个标准的解决方案是为该类实现 writeObject 和 readObject 方法。
但是,在我的情况下,要序列化的对象的类位于 JAR 文件中,因此我无法更改它以实现 readObject 和 writeObject 方法。
此外,JAR 中的类是最终类。
在这种情况下有没有办法序列化一个对象?
像这样扩展jar类
public class YourSerializableClass extends Jar Class implements Serializable
基本上你需要继承你的 jar 类并使其实现可序列化
更新:-
如果类是最终的,您可以尝试删除该修饰符,然后使用上述方法,否则您可能需要使用字节码操作。这是可以为您提供删除最终修饰符的指针的链接
readObject
您可以使用 AspectJ 或一种使用 BCEL 或 ASM 等工具的字节码操作形式,通过和writeObject
方法增强该类。