Почему setText () в текстовом поле Kotlin компилятора компенсируется? - PullRequest
0 голосов
/ 20 апреля 2020
private class FakeCardDrawable constructor(
    context: Context) : CardDrawable(context) {
    var text: String? = null
    var backgroundColor = 0
    var textColor = 0


    override fun setColors(
        backgroundColor: Int, textColor: Int, animate: Boolean
    ) {
        this.backgroundColor = backgroundColor
        this.textColor = textColor
    }

     fun setText(text: String) {
        this.text = text
    }
}

Он жалуется, говоря "Объявление платформы cla sh: следующие объявления имеют одинаковую подпись JVM (setText ..)

1 Ответ

1 голос
/ 20 апреля 2020

Поскольку ваше var text и ваша функция setText() оба переведены в JVM в метод publi c с именем setText().

Чтобы избежать объявления платформы cla sh, у вас есть 3 варианта здесь :

  1. Изменить имя var text или имя setText
  2. Сделать var text с личным set:
var text: String? = null
  private set
Изменить имя JVM метода:
@JvmName("myJvmName")
fun setText(text: String) {
    this.text = text
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...