我正在尝试使用Kryo序列化一个类并通过Apache Kafka发送它。我正在序列化的对象有一个byte []作为类中的一个字段。序列化对象工作正常,但是当我尝试使用read方法对其进行反序列化时遇到了麻烦。我总是得到一个超出界限的数组:-2。
下面是我的Data对象类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()用法的文档很少。我这样做了吗?