报错:com.alibaba.fastjson.JSONException: default constructor not found. class com.xxx.xxx.model.Config原类:data class Config(val kinds : ArrayList , val sort : ArrayList)
w3nuxt5m1#
基于 java 反射的 json 库通病,包括 gson 也是。解决方案:
只有这样生成的 jvm 代码才会有无参构造函数。
另外 gson 和 fastjson 还无法正确处理 kotlin 的非空变量(会用反射强制赋值一个null给声明非空的变量)
因为 java 反射原理限制上述问题是无法彻底解决的,所以使用 kotlin 的话还是尽早迁移到 moshi 吧。
1条答案
按热度按时间w3nuxt5m1#
基于 java 反射的 json 库通病,包括 gson 也是。解决方案:
只有这样生成的 jvm 代码才会有无参构造函数。
另外 gson 和 fastjson 还无法正确处理 kotlin 的非空变量(会用反射强制赋值一个null给声明非空的变量)
因为 java 反射原理限制上述问题是无法彻底解决的,所以使用 kotlin 的话还是尽早迁移到 moshi 吧。