用kotlin写Gson解析遇到failed to invoke 问题
来源:互联网 发布:电脑网络受限制怎么办 编辑:程序博客网 时间:2024/06/01 10:10
这段时间一直用kotlin再写项目,对于语法不是很熟悉总是遇到一些问题不知如何解决,网上的资料也不多,只能摸索着解决。本篇文章只为记录错误防止以后再犯。
问题描述:
自定义一个类LifecycleJson
class LifecycleJson() { var lifecycle: ArrayList<LifecycleInfo> = null!! var link: ArrayList<LinkInfo> = null !! var state: ArrayList<StateInfo> = null!! }在项目中有一段Gson解析的代码
fun parseData(result: String): LifecycleJson { val gson = Gson() val lifecycleJsonInfo = gson.fromJson<LifecycleJson>(result, LifecycleJson::class.java) return lifecycleJsonInfo }每次运行到Gson解析的时候都会遇到Failed to invoke 包名.LifecycleJson with no args
错误信息很简单就是Gson在把json映射成LifecycleJson对象时不能调用没有参数的构造。
思考:
在java语言中每个对象都会默认生成一个没有参数的构造器,为什么会不能调用呢?第一直觉就是自己写了一个没有参数的构造函数,然而仍旧报相同的错误。
问题搁置了几天,有一天我单步调试发现返回的字符串某些属性是为空的,在kotlin中定义属性的时候都要明确是否可以为空,比如LifecycleJson中的3个属性我写的都不能为空。因此对LifecycleJson进行修改如下:
class LifecycleJson() { var lifecycle: ArrayList<LifecycleInfo> ?= null var link: ArrayList<LinkInfo> ?= null var state: ArrayList<StateInfo> ?= null}再运行,没有报错,结果正确解析。
阅读全文
0 0
- 用kotlin写Gson解析遇到failed to invoke 问题
- Gson 解析遇到的奇怪问题
- Gson解析json数据遇到的问题。
- 关于使用Gson解析entity中遇到的问题
- 使用Gson和FastJson解析JSON数据遇到的问题
- Kotlin配合Gson进行json数据解析
- android Gson解析问题
- javabean问题,gson解析
- Gson : Unable to invoke no-args constructor for class
- Eclipse遇到问题--failed to create the java virtual machine
- Failed to start component [StandardServer[8005]] 遇到的问题
- Retrofit 泛型解析遇到com.google.gson.internal.LinkedTreeMap cannot be cast to object
- Gson使用遇到的问题
- Android Kotlin遇到的问题
- 写一个gson遇到的坑
- grails 困扰了蛮久的问题 java.lang.IllegalStateException: Failed to invoke Servlet 2.5 getContextPath method
- 关于Gson解析Okhttp返回的json数据遇到的问题
- 利用OkHttp请求网络,利用Gson解析Json数据中遇到的问题。
- debian NFS服务器的启动和设定
- POJ_3067_树状数组
- Java OOM 异常分析
- thinkPHP的数据缓存问题
- oracle-11g忘记sys,system密码的处理方法
- 用kotlin写Gson解析遇到failed to invoke 问题
- windows上安装jdk8后如何切回jdk7
- java 3年经验 你需要会什么
- Linux环境搭建:CentOS7安装Oracle
- gradle配置Javadoc
- android stdio链接不到手机时
- 欢迎使用CSDN-markdown编辑器
- struts2.3升级到2.5步骤
- 剑指offer_常用编程技巧总结2