如何在Java中序列化AttributedString?

时间:2017-02-24 07:45:13

标签: java serialization persistent-storage

或以其他方式保存它。 我尝试创建一个继承自AttributedString并实现Serializable的类,但事情并没有成功。

2 个答案:

答案 0 :(得分:2)

正如您所观察到的,AttributedString类没有实现Serializable并且没有提供无参数构造函数。因此序列化失败。 AFAIK,Java SE库中没有任何东西可以直接处理这个问题。

但是,我找到了一个名为org.jfree.io.SerialUtilities的第三方库,它提供了通过AttributedStringObjectOutputStream序列化和反序列化ObjectInputStream个对象的方法。

要使用这些方法,通常需要为使用这些类型的任何可序列化类编写自定义readObjectwriteObject方法。我在这里找到了一些例子:

答案 1 :(得分:0)

https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html声明如下:

  

在反序列化期间,非序列化类的字段将是   使用公共或受保护的无参数构造函数初始化   类。必须可以访问子类的无参数构造函数   序列化。将恢复可序列化子类的字段   来自溪流。

AttributedString没有扩展子类可访问的no-arg构造函数,因此反序列化将失败。