1

我正在尝试用 Kryo 序列化一个类并通过 Apache Kafka 发送它。我正在序列化的对象有一个 byte[] 作为类中的一个字段。序列化对象工作正常,但是当我尝试使用 read 方法对其进行反序列化时遇到了麻烦。我总是得到一个数组越界异常:-2。

下面是我的数据对象类 pojo 和我的自定义序列化程序

public class Data {
  int dataSize;
  byte[] data;
}

public class DataSerializer extends Serializer<Data.class> {

 public void write (Kryo kryo, Output output, Data object) {
    output.writeInt(object.getDataSize());
    output.writeBytes(object.getData());
}

public Data read (Kryo kryo, Input input, Class<Data> type) {
    Data data = new Data();
    data.setDataSize = input.readInt();
    data.setData = input.readBytes(data.getDataSize());
    return data;
}

}

关于 readBytes() 和 writeBytes() 用法的文档很少。我这样做正确吗?

4

0 回答 0