Reuse Object Pools
1 | // 一般对象 |
Ignore Field
1 | "ignored") :FieldSerializer.Optional( |
Note
- 对于跨服务进行序列化的类,不论是发送方还是接收方,都需要对该类进行注册。先注册父类,再注册父类里面嵌套的子类。标准库的类不需要注册,比如MutableList等等。
- 如果先注册子类,再注册父类,可能会造成接收方反序列化失败。
- 在Kotlin中,如果A类和B类字段一样,如果A类被Open修饰,B类没有Open修饰,使用B类反序列化A类的数据是失败的。A类会因为Open关键字造成序列化出来的数据多个Byte。
Register List
1 | // A类 |
虽然A类和B类中的list的元素类型不同,但是都用到了MutableList(其他List类型同样),因此在序列化或反序列的时候,用不同的SerializerUtil对象来注册和使用。
- aSerializerUtilInstance负责注册A类,序列化和反序列化A类;
- bSerializerUtilInstance负责注册B类,序列化和反序列化B类