Intereting Posts
Модуль библиотеки Android, разработанный в Kotlin, экспортируется в приложение Java, вызывающее неудачное разрешение: Lkotlin / jvm / internal / Intrinsics Как получить данные из базы данных Firebase и сохранить их в ListArray <Class>? – Котлин Kolin – Список элементов к списку списков Как я могу квадратировать каждый элемент целочисленного массива в Kotlin Требует ли Kotlin рамки DI? Почему существует NoClassDefFoundError с классом, который существует? Приложение build.gradle.kts Файл Unresolved Reference Erros Исключение происходит во время действия Expression Expression: Для функции Kotlin, используемой в качестве выражения, существует ли краткий способ работы и возврата значения? Scala эквивалентный способ Range для пользовательского класса Проблемы, наследующие внутренний класс java Котлин || Не удалось добавить библиотеку в Мое приложение? Нулевой указатель в поле зрения, когда запускается проверка андроида. Вернуть пустой результат в запрос QueryRecyclerAdapter Проверьте, работает ли моя активность в MultiWindowMode или не используется Kotlin

Перегрузка равна BigDecimal в Котлине

В файле Kotlin я пытаюсь перегрузить метод equals класса BigDecimal . Для этого у меня есть следующий код:

fun BigDecimal.equals(n: Any?): Boolean = n is Int && this.compareTo(BigDecimal(n)) == 0 

Проблема в том, что эта функция не вызывается n.equals (1), где n имеет тип BigDecimal. В чем проблема и как я могу ее решить?

Вы не можете переопределять или теневые функции классов с функциями расширения. См. Ответ на очень похожий вопрос здесь .

Из документации :

Если класс имеет функцию-член, и определена функция расширения, которая имеет тот же тип приемника, одно и то же имя и применима к заданным аргументам, член всегда выигрывает.