С приведенным ниже кодом я получаю следующую ошибку в IntelliJ IDEA 13.1.6 и плагине Kotlin 0.11.91.AndroidStudio.3:
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
}
Но в моем реальном случае у меня есть ряд свойств для реализации и нуждающихся в настройках. Делать это для каждого свойства не кажется очень Kotlin-ish. Что мне не хватает?