项目中使用Retrofit+Gson去请求数据,但是同一个bean类用java可以和kotlin数据类不行
类似如下的数据结构
{
"code": 1,
"msg": "请求成功",
"data": [
{
"id": 4,
"type_name": "xxxx",
},
{
"id": 5,
"type_name": "xxx",
},
{
"id": 6,
"type_name": "xxxx",
}
]
}
在项目中一般会这么设计bean类
public class BaseResponse<T> {
private int code;
private T data;
private String msg;
//省略构造方法getter和setter
}
public class Feedback {
private int id;
private String type_name;
//省略构造方法getter和setter
}
在使用retrofit进行请求时
Observable<Response<BaseResponse<List<Feedback>>>> feedbackList = apiService.getFeedbackList();
以上步骤能够正常获取到数据
但是由于我嫌弃java使用Feedback时每次都需要添加getter和setter等方法,想着使用kotlin的数据类来实现,如下
data class Feedback(
var id: Int = 0,
var type_name: String = "",
)
//某博客说全部设置初始值能够有默认构造方法
data class Feedback(
val id: Int = 0,
val type_name: String = "",
)
data class Feedback(val id: Int, val type_name: String)
换成kotlin的数据类后,其他都没动,这三种方式,没有一个可以被正常解析的。