代码中采用 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))