2

我正在尝试在 Java 中序列化一个不可序列化的对象。一个标准的解决方案是为该类实现 writeObject 和 readObject 方法。

但是,在我的情况下,要序列化的对象的类位于 JAR 文件中,因此我无法更改它以实现 readObject 和 writeObject 方法。

此外,JAR 中的类是最终类。

在这种情况下有没有办法序列化一个对象?

4

2 回答 2

2

像这样扩展jar类

public class YourSerializableClass extends Jar Class implements Serializable

基本上你需要继承你的 jar 类并使其实现可序列化

更新:-

如果类是最终的,您可以尝试删除该修饰符,然后使用上述方法,否则您可能需要使用字节码操作。这是可以为您提供删除最终修饰符的指针的链接

使用反射更改静态最终 File.separatorChar 进行单元测试?

于 2013-04-16T11:26:10.037 回答
2

readObject您可以使用 AspectJ 或一种使用 BCEL 或 ASM 等工具的字节码操作形式,通过和writeObject方法增强该类。

于 2013-04-16T11:27:46.650 回答