尝试序列化 SimpleDirectedGraph 时出现以下错误:
com.esotericsoftware.kryo.KryoException: java.lang.IllegalArgumentException: Unable to create serializer "com.esotericsoftware.kryo.serializers.FieldSerializer" for class: org.jgrapht.graph.SimpleDirectedGraph
我对此类错误的 Internet 搜索返回了很多人建议将用户更新到 ASM 4.0 库。我正在使用 Kryo 2.2 All,其中包括 ASM 4.0 库。为了以防万一,我还尝试单独包含 ASM 4 库,但没有运气。
我尝试过序列化更简单的对象,例如 ArrayList。那些很好。我不清楚为什么 kryo 无法序列化这个图形类。有人有想法吗?
更新: 由于我正在使用图表,因此我尝试实现 kryo 的实验性“延续”分支https://github.com/EsotericSoftware/kryo/issues/103
不幸的是,我仍然收到同样的错误。
更新:我认为诀窍可能是使用不同类型的序列化程序。不幸的是,我似乎找不到一个可以与 SimpleDirectedGraph 一起使用的。BeanSerializer 只序列化第一个对象层。嵌套对象似乎没有被序列化。其他序列化程序只是抛出与 FieldSerializer 相同的错误。是否有人们通常与图表一起使用的序列化程序?