【发布时间】:2022-01-04 15:01:03
【问题描述】:
我试图通过使用私有构造函数来分配类字段来减少代码重复,但这似乎是不可能的。
我想要做的就是这里的例子:
class Foo {
private val bar: Int
private val baz: Int
constructor(bar: Int, baz: Int) : this(baz) {
this.bar = bar
}
constructor(bar: String, baz: Int) : this(baz) {
this.bar = bar.toInt()
}
private constructor(baz: Int) {
this.baz = baz
}
}
可行但我不满意的替代方法是执行以下操作:
class Foo {
private val bar: Int
private val baz: Int
constructor(bar: Int, baz: Int) {
this.bar = bar
this.baz = baz
}
constructor(bar: String, baz: Int) {
this.bar = bar.toInt()
this.baz = baz
}
}
需要明确的是,由于 this.baz 分配的复制,我不满意。
这在 Kotlin 中根本不可能,还是我遗漏了什么?
【问题讨论】:
标签: kotlin constructor field