我有一个java接口(interface):
public interface TestInterface {
String getName();
}
我有一个 kotlin 类(class):
class TestImpl(private var name: String = "name"): TestInterface {
override fun getName(): String = name
}
但是如果我也想要name字段的setter方法,
class TestImpl(private var name: String = "name"): TestInterface {
override fun getName(): String = name
// I don't want to write a setter like this
fun setName(n: String) {
this.name = n
}
}
我还能采取什么更好的方法?谢谢。
最佳答案
你可以使用
class TestImpl(@get:JvmName("getName_") var name: String = "name"): TestInterface {
override fun getName(): String = name
}
然后您可以从 Kotlin 中以 x.name
/x.name = ...
的形式访问它,并且 x.getName()
/来自 Java 的 x.setName(...)
。不幸的是,您在 Java 中也有 getName_()
,但您不必使用它。
关于java - 在 Kotlin 中使用 setter 实现 Java getter 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60901399/