Kryo List Serializer

代码中采用 Kryo 来序列化, 当一个类的一个 field 为 list 时, 总是报错.

Kryo 中找到:

Kryo kryo = new Kryo();
FieldSerializer someClassSerializer = new FieldSerializer(kryo, SomeClass.class);
CollectionSerializer listSerializer = new CollectionSerializer();
listSerializer.setElementClass(String.class);
listSerializer.setElementsCanBeNull(false);
someClassSerializer.getField("list").setClass(LinkedList.class, listSerializer);
kryo.register(SomeClass.class, someClassSerializer);

但是

listSerializer.setElementClass(String.class)

会提示语法错误, 况且很多时候用的不是一个基本类型.

使用下面的方式设置 ok :

listSerializer.setElementClass(MyBean.class, new BeanSerializer(kryo, MyBean.class))