Фильтр по свойствам enum class Kotlin

Как фильтровать класс enum в kotlin? (только обучение). В приведенном ниже коде класс перечисления, определенный ранее в файле, является PayStatus {PAID, UNPAID}.

fun nextRentDate(): LocalDate? { return rentPaymentSchedule. filter { it.value.paymentStatus is PayStatus.UNPAID}. minBy { it.value.date.toEpochDay() }?.value?.date } 

Я получаю сообщение об ошибке: Kotlin: Несовместимые типы: PayStatus.UNPAID и Enum

Вы должны использовать оператор == при проверке значений перечисления!

Вы используете ключевое слово is для сравнения двух перечислений друг с другом. Фактически is можно использовать для сравнения типов , как описано здесь .

Это не работает в Java или Kotlin, поскольку компилятор говорит:

'is' over enum entry не разрешено, вместо этого используйте сравнение

Сравнение в Котлине происходит в двух вариантах : == и ===

Первый вариант == скомпилирован до equals() , тогда как последний, === , эквивалентен Java == (сравнение ссылок).

Как мы знаем, это не имеет особого значения для перечислений, как вы можете прочитать в этом ответе .