在Java中序列化期间没有有效的构造函数错误



我正在序列化我的类Rowserializable,以便在数据集中使用它,但是我会遇到此错误

"无法读取用户代码包装器:es.foo.flink.utils.rowserializable;没有有效的构造函数"

public class RowSerializable extends Row implements Serializable {
   private Object[] fields2;
   public RowSerializable(int arity){
       super(arity);
       this.fields2 = new Object[arity];
   }
   public RowSerializable(){
       super(0);
   }
}

首先我没有创建的非ARG构造函数,所以我仍然有相同的错误

仅适合需要参考的人。正如EJP明确指出的那样,我们需要为POJO类添加NO-ARGS构造函数,我们希望与自定义序列化序列化。

在这里示例pojo类-recor.java

这是一个示例自定义序列化器类-Recorderializer.java

要使用上述POJO和自定义序列化器,我们需要在执行环境中注册它们。

以下是该

的示例代码
final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
    env.getConfig().registerTypeWithKryoSerializer(Record.class, RecordSerializer.class);

这是完整代码的链接。

相关内容

  • 没有找到相关文章

最新更新