我正在尝试用Java序列化一个不可序列化的对象。标准解决方案是为该类实现writeObject和readObject方法。
在我的例子中,要序列化的对象的类是在JAR文件中,所以我无法更改它以实现readObject和writeObject方法。
此外,JAR中的类是最终类。
在这种情况下有没有办法序列化对象?
答案 0 :(得分:1)
像这样扩展jar类
public class YourSerializableClass extends Jar Class implements Serializable
基本上,您需要将jar类子类化并使其实现可序列化
更新: -
如果class是final,你可以尝试删除该修饰符,然后使用上面的方法,否则你可能需要使用字节码操作。这里是链接,可以指导您删除最终修饰符
Using reflection to change static final File.separatorChar for unit testing?
答案 1 :(得分:1)
您可以使用AspectJ或使用BCEL或ASM等工具进行字节码操作,以使用readObject
和writeObject
方法增强该类。