Мне нужно сериализовать объект с Object[]
поля в нем в массив байтов, но когда я выполнить следующий код результирующий массив байт пуст:сериализовать объект с массивом в Avro
TestObject testObject = new TestObject();
ByteArrayOutputStream out = new ByteArrayOutputStream();
DatumWriter<TestObject> writer = new ReflectDatumWriter<TestObject>(TestObject.class);
final Encoder encoder = EncoderFactory.get().directBinaryEncoder(out, null);
writer.write(testObject, encoder);
out.close();
// This is empty
byte[] res = out.toByteArray();
Где TestObject является:
class TestObject {
Object[] arr = new Object[] {1, "str", false};
}
Если я заменяю определение TestObject с:
class TestObject {
String str = "str";
}
Он отлично работает, и я вижу, что поле String
успешно записывается в массив байтов.
У Avro есть проблемы с сериализацией Object[]
массивов или я использую его неправильно?