考虑以下Java接口
interface Foo {
String getValue();
}
在Kotlin中,get/set函数转换为属性,因此我期望实现看起来像这样。
class FooImpl : Foo {
val value: String get() = "Hello, World!"
}
但是我必须按照接口中的方法实现它。
class FooImpl {
override fun getValue(): String {
return "Hello, World!";
}
}
为什么?
string Foo { get; }
的 C# 类属性,然后尝试定义一个名为string get_Foo()
的方法,编译器将抱怨您已经定义了该方法。那么,到底是什么使 Kotlin 属性与 get/set 方法不同呢? - Matthew Layton