可以轻松地设置一个 setter,例如data
如何使用相同的方法设置 1 个以上的值?我用不雅的方法setData来完成它。
class MyClass{
var data = listOf<GithubRepo>() // individual setter
set(value) {
field = value
}
lateinit var listener: (GithubRepo) -> Unit // lambda
// classical setter like in Java
fun setData( data: List<GithubRepo>, listener: (GithubRepo) -> Unit): Unit{
this.data = data
this.listener = listener
}
}
Run Code Online (Sandbox Code Playgroud)
是否有更多 Kotlin 方法可以从方法中设置多个变量?
由于 setter 函数的工作方式,这是不可能的——它们只接受一个参数。即使您考虑使用带有多个参数的 setter,它看起来也不对:
x.data = items, { /** listener impl */ }
Run Code Online (Sandbox Code Playgroud)
如果你真的想要,你可以将你的参数分组到一个对象中:
x.data = Wrapper(items, { /** listener impl */ })
Run Code Online (Sandbox Code Playgroud)
但即使是这个建议也不好。在我看来,最好的方法是使用 Java 风格的 setter(它不是典型的setter,因为它有多个参数),你认为它不优雅,但至少 Kotlin 为你提供了更好的调用语法:
x.setData(items) { /** listener impl */ }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
460 次 |
| 最近记录: |