在java中我们可以做到以下
class A{
int id;
String name;
public A(){}
public A(int id, String name){
this.id = id;
this.name = name;
}
// getter/ setter
}
Run Code Online (Sandbox Code Playgroud)
然后我可以创建一个新的Object并获得如下的json
A a= new A()
a.setName("test")
System.out.println(new Gson().toJson(a))
Run Code Online (Sandbox Code Playgroud)
这给了我结果
{"name":"test"}
Run Code Online (Sandbox Code Playgroud)
在kotlin我怎么能得到这个?
我面临的问题是kotlin说原始类型必须被初始化.因此,在JSON我得到两个id和name; 这是我不想要的
那怎么办呢???
Kotlint严肃对待null安全性因此你必须明确初始化值.您的示例可以转换为:
class A(var id: Int? = null, var name: String? = null)
Run Code Online (Sandbox Code Playgroud)
请注意,上面在JVM上有默认参数和无参数构造函数.这是你写的:
val a = A()
Run Code Online (Sandbox Code Playgroud)
以及:
val a = gson.fromJson(json, A::class.java)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
780 次 |
| 最近记录: |