java – kryo.readObject导致与ArrayList的NullPointerException
发布时间:2020-05-25 00:48:29 所属栏目:Java 来源:互联网
导读:当我使用kryo反序列化ArrayList对象时,我得到一个NullPointerException. Caused by: java.lang.NullPointerException at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:215) at java.util.ArrayList.ensureCapac
|
当我使用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来进行字段初始化. 我究竟做错了什么? 解决方法随着kryo版本2.24,呼叫kryo.setInstantiatorStrategy(new StdInstantiatorStrategy()); 覆盖使用class no argument构造函数的默认实例化器策略(如果存在).正确的方法是打电话: ((Kryo.DefaultInstantiatorStrategy) kryo.getInstantiatorStrategy()).setFallbackInstantiatorStrategy(new StdInstantiatorStrategy()); 这在这里解释https://github.com/EsotericSoftware/kryo 我认为自2.21版以来这已经发生了变化 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – 如何使用包含特定文件的ant构建创建EAR文件?
- java – 如何在泛型边界上获取TYPE_USE注释
- java – AspectJ Gradle配置
- java – 即使使用包装类,SwingWorker异常也会丢失
- java中rss解析器(rome.jar和jdom.jar)示例
- java微信红包实现算法
- Java那点事――StringBuffer与StringBuilder原理与区别
- java利用Apache commons codec进行MD5加密,BASE64加密解密,
- .net – 为什么我们需要IEqualityComparer,IEqualityCompar
- java – viewpager完成后调用actvity
