是否可以自动创建返回this
的设置器?
尝试了以下方法,但这种方法不起作用,但是此示例显示了我想要实现的目标:
var pos: Int?
set(value) : IPosItem {
this.pos = value
return this
}
手动解决方案
写出自己setters
和getters
的方式,例如:
var _pos: Int?
fun getPos(): Int? = _pos
fun setPos(value: Int?): IPosItem {
_pos = value
return this
}
问题
可以使用Kotlin自动执行此过程吗?任何想法如何实现这一目标?
答案 0 :(得分:0)
您似乎在看builder pattern,为此您可能会在Kotlin中使用DSL over链式设置器。
最简单的内置方法是使用带有receiver的“块”(引号,因为with
是Kotlin的适当功能,在这里没有什么魔术):
val newThing = Thing()
with ( newThing ) {
pos = 77
otherValue = 93
}
或者类似地:
val newThing = Thing().apply {
pos = 77
otherValue = 93
}
有关构建不可变实例的更详细的示例,请参见here。官方文档中也有more on this topic。