【发布时间】:2021-03-09 20:14:03
【问题描述】:
我有一个带有 setter 的 Java 类,但没有属性的 getter。
class Person {
private String name;
public void setName(String name) { this.name = name; }
}
我想使用 .name= 从 Kotlin 分配给它
fun example() {
val p = Person()
p.name = "example"
}
我在尝试编译 Kotlin 时收到错误 unresolved reference: name。如果我添加一个 getter,错误就会消失,但是我可以使用 setter 作为属性而不在 Java 中定义一个 getter 吗?我知道我仍然可以从 kotlin 拨打 p.setName("example")。
以上是MCVE。 real world 代码是一个 Java 构建器,带有 setter 而不是我想从 Kotlin 中使用的 getter,例如
val widget = WidgetBuilder().apply {
width = 1 // instead I need .setWidth(1)
height = 2
weight = 3
name = "my widget"
}.build()
【问题讨论】:
标签: kotlin kotlin-java-interop kotlin1.4