Intereting Posts
Алгоритм для рекомендаций по выравниванию / привязки, найденных в GUI-сборщиках Проверка значений параметров EditText вызывает сбой Kotlin: Получение данных из Firebase Расширение Kotlin не распознается в адаптере Использование kotlin-stdlib 1.1.51, но загрузка kotlin-runtime 1.3 Плагин JaCoCo Gradle сообщает об уровне покрытия, равном 0,0, для каждой упаковки Миграция номера, попытка повторного открытия уже закрытого объекта: SQLiteDatabase Интерфейс Pass в качестве параметра в Kotlin Могу ли я указать тип свойства в делегате? Инициализировать ArrayList <ArrayList <Int >> с размером в kotlin не удалось создать экземпляр расширения плагина gradle Котлин не видит аксессуаров Java Lombok? Несколько конструкторов в неизменяемом (data) классе Использование в операторе для сравнения строки с диапазоном строк Объединение данных из разных Observables и выбор различных стратегий получения, в зависимости от доступности данных

Как переопределить метод setter в котлин?

class loginViewModel(): BaseObservable() { var errorEmail:String?=null var errorPassword:String?=null var userEmailAddress:ObservableField<String> = ObservableField() var userPassword:ObservableField<String> = ObservableField() fun setUserEmailAddress(email:ObservableField<String>){ this.userEmailAddress=email /* To get value of edittext enterd by user, This Updates the value of userEmail on Every LEtter Entered by User*/ notifyPropertyChanged(R.id.email_address) notifyPropertyChanged(BR.errorEmail) } } 

Но получение ошибки

 Platform declaration clash: The following declarations have the same JVM signature (setUserEmailAddress(Landroid/databinding/ObservableField;)V): • public final fun setUserEmailAddress(email:ObservableField<String>): Unit • public final fun <setUserEmailAddress>(<set-?>:ObservableField<String>): Unit 

Я попробовал это решение .

kotlin version = 1.1.2-4 Я тоже пытался переопределить удовольствие, которое, я думаю, мы не можем.

Вы можете объявить пользовательский сеттер для своего поля вместо создания нового setUserEmailAddress() . Вы можете увидеть код, чтобы сделать это ниже.

Причина, по которой вы получаете эту ошибку, состоит в том, что при создании var вы автоматически создаете сеттер. Функция setUserEmailAddress вы создаете, совпадает с ее именем, вызывающим столкновение пространства имен.

 class loginViewModel(): BaseObservable() { var errorEmail:String?=null var errorPassword:String?=null var userPassword:ObservableField<String> = ObservableField() var userEmailAddress:ObservableField<String> = ObservableField() set(email){ // the type of email is inferred field=email // we can access the backing field in our custom setter /* To get value of edittext enterd by user, This Updates the value of userEmail on Every LEtter Entered by User*/ notifyPropertyChanged(R.id.email_address) notifyPropertyChanged(BR.errorEmail) } }