将非可序列化对象(其类在JAR中)写入文件

时间:2013-04-16 11:20:19

标签: java serialization

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

在我的例子中,要序列化的对象的类是在JAR文件中,所以我无法更改它以实现readObject和writeObject方法。

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

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

2 个答案:

答案 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等工具进行字节码操作,以使用readObjectwriteObject方法增强该类。