Theo em biết thì Kryo cho phép config setRegistrationRequired()
true
, khi dùng writeClassAndObject() Kryo sẽ thêm registrationId vào đầu bytes array để làm header
Nếu false
, Kryo sẽ tự thêm metadata của class đó.
Lấy ví dụ em có class TypeA có 1 field List<String>
.
Vấn đề nếu set true cho setRegistrationRequired()
thì khi writeClassAndObject Kryo sẽ dùng runtime type để chọn Serializer phù hợp cho List<String>
(có thể là ArrayList, LinkedList, ...) và giả sử việc register
các Class phải thực hiện trước khi Kryo write.
Trong trường hợp này em sẽ phải register như thế nào nếu có 1 field là Interface (vì không thể register toàn bộ concrete Class của 1 Interface được). Có cách nào để xứ lí không nhỉ?