通过枚举类属性Kotlin进行过滤

如何过滤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和枚举

检查枚举值时,您必须使用==运算符!

您正在使用it.value.paymentStatus is PayStatus.UNPAID用于将两个枚举相互比较, is是用于类型比较的关键字,如此处所述。

这在Java或Kotlin中不起作用,因为编译器告诉:“'是'不允许使用枚举条目,而是使用比较来代替”

Kotlin的比较有两种=====

第一个选项==编译为equals() ,而后者===等同于Java的== (比较引用)。

正如我们所知,这对于枚举并没有太大的作用,正如你可以在这个答案中看到的一样。