2017-02-24 51 views

回答

2

如您所见,AttributedString类不实现Serializable并且不提供无参数构造函数。因此序列化失败。 AFAIK,Java SE库没有任何东西可以处理这个(直接)。

不过,我发现了一个名为org.jfree.io.SerialUtilities类,它提供了序列化,并通过ObjectOutputStream和反序列化ObjectInputStream对象AttributedString方法第三方库。

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

0

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

在反序列化,非序列化类的字段将 使用公共或保护的 类的无参数的构造函数初始化。对于可序列化的子类,必须可访问无参数构造函数。序列化子类的字段将从流中恢复为 。

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