Kotlin使用params语法创建对象



我有一个对象

class Person {
@JsonProperty("name")
var name: String? = null
@JsonProperty("id")
lateinit var id: String}

有一个唯一的空构造函数,我想创建一个人,所以我写:

val person = Person()
person.name = "someName"
person.id = "SomeId"

我确信有一种更漂亮的语法,比如

val person = Person {name = "someName" , id = "someId"}

但我找不到一个例子。我是不是错过了什么?我应该创建一个二级构造函数来使用这种语法,还是有其他方法?

请检查应用方法。

你的代码是这样的:

val person = Person().apply {name = "someName", id = "someId"}

另一种方法-您可以将Person的声明更改为(例如,只需更改括号,将var替换为val并删除lateinit(:

class Person (@JsonProperty("name") val name: String? = null,
@JsonProperty("id") val id: String )

然后你将能够做到这一点:

val person = Person(name = "someName", id = "someId")

您可以使用构造函数参数来实现它。

class Person(
@JsonProperty("name")
var name: String? = null,
@JsonProperty("id")
var id: String
)

val person = Person(name = "someName", id = "someId")

另一种方法是使类和所需变量打开以被覆盖。

open class Person {
@JsonProperty("name")
open var name: String? = null
@JsonProperty("id")
open var id: String = ""
}
val person =  object : Person() {
override var name: String? = "SomeName"
override var id = "SomeId"
}

相关内容

  • 没有找到相关文章

最新更新