Обычно вам не нужно искать альтернативы, поскольку Kotlin повторно использует существующие типы Java, такие как String
. На самом деле эти типы отображаются на внутренние типы Kotlin. В случае String
это выглядит так:
java.lang.String
-> kotlin.String
Следовательно, требуемый метод equalsIgnoreCase
будет доступен только в том случае, если он также был указан в kotlin.String
, а это не так. Дизайнеры Kotlin решили предоставить более общую функцию equals
, которая позволит вам указывать нечувствительность к регистру с помощью логического параметра.
Вы можете использовать класс Java String
в любое время, если это действительно необходимо (это не рекомендуется, IntelliJ будет жаловаться на это):
("hello" as java.lang.String).equalsIgnoreCase("Hello")
С помощью функции расширения мы могли бы даже добавить функциональность в класс kotlin.String
:
fun String.equalsIgnoreCase(other: String) =
(this as java.lang.String).equalsIgnoreCase(other)