通过下面的代码,我在 IntelliJ IDEA 13.1.6和 Kotlin 插件0.11.91中得到了以下错误:
Platform declaration clash: The following declarations have the same JVM signature (getName()Ljava/lang/String;):
• public open fun getName(): kotlin.String?
• internal final fun <get-name>(): kotlin.String?
Java 类,JavaInterface.java
:
public interface JavaInterface {
public String getName();
}
科特林级,KotlinClass.kt
public class KotlinClass(val name: String?) : JavaInterface
我已经尝试通过以下方法重写“ getter”方法
添加 override fun getName(): String? = name
,但会产生相同的错误。
我可以想出一个解决办法:
public class KotlinClass(val namePrivate: String?) : JavaInterface {
override fun getName(): String? = namePrivate
}
但是在我的实际情况中,我需要实现许多属性,并且也需要 setter。对每个属性都这样做似乎不太像科特林风格。我错过了什么?