Avatar
0
e2al3qakmdd1okym Beginner
Kryo serializer
Em mới tiếp cận việc dùng Kryo cho serializer Object to byte.

Theo em biết thì Kryo cho phép config setRegistrationRequired()

Nếu set 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ỉ?

  • Answer
Remain: 5
1 Answer
Avatar
tvd12 Beginner
tvd12 Beginner
serialize thì ok nếu em chỉ biết interface vì bản chất đối tượng bên trong nó đã được khởi tạo bằng concrete rồi, còn deserialize thì chịu em ạ, 1 là em phải có concrete class, hoặc là em có thể tạo ra 1 lớp custom deserializer để làm gì đó, nhưng cuối cùng em vẫn phải có concrete class để tạo và gán giá trị em ạ.
  • 0
  • Reply