gpt4 book ai didi

java - 在 Kryo 中序列化和反序列化对象数组

转载 作者:搜寻专家 更新时间:2023-11-01 03:40:58 25 4
gpt4 key购买 nike

我最近一直在测试 Kryo 的序列化和反序列化,并且总体上对它很满意,但是不清楚如何处理包含对象数组的类的(反)序列化。该类包含最终字段,所以我似乎无法使用默认的 FieldSerializer(错误是“无法创建类(缺少无参数构造函数)”,但无参数构造函数不适合最终原语).所以,给定类

@AllArgsConstructor
public class DataObject{
private final double field1;
private final double field2;
private SubObject[] children;
}

@AllArgsConstructor
public class SubObject{
private final double field1;
private final double field2;
}

如何高效地编写序列化器/反序列化器来处理这个问题?我的假设是我在 com.esotericsoftware.kryo.io.Input 中遗漏了一些东西,它可以让我在自定义序列化程序中执行此操作,但这可能是错误的轨道..

最佳答案

问题是 3 年前提出的,所以现在写答案有点傻,但我找到了一个解决方案,直接在 kryo 的自述文件中描述

这是一个link

基本上,当您通过简单调用 writeObject(Output, Object) 而不提供您自己的序列化程序来序列化对象时,kryo 使用默认的 FieldSerializer需要无参数构造函数。

您可以提供私有(private)非参数构造函数,kryo 将使用反射 机制调用该构造函数。我认为这是您想要的合适方式,因为私有(private)零参数构造函数不违反架构原则

关于java - 在 Kryo 中序列化和反序列化对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14499670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com