使用Kryo反序列化ArrayList对象时,我遇到了一个NullPointerException。
Caused by: java.lang.NullPointerException
at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:215)
at java.util.ArrayList.ensureCapacity(ArrayList.java:199)
at com.esotericsoftware.kryo.serializers.CollectionSerializer.read(CollectionSerializer.java:96)
at com.esotericsoftware.kryo.serializers.CollectionSerializer.read(CollectionSerializer.java:22) at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:679)
at com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.java:106)
我可以看到StdInstantiatorStrategy创建了一个ArrayList,但没有调用其构造函数,导致其中的一个字段未初始化从而引发了异常。
文档中提到应首先调用无参数构造函数,如果没有可用的构造函数,则应使用StdInstantiatorStrategy进行逐个字段的初始化。
我做错了什么?