通过枚举类属性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:不兼容的types:PayStatus.UNPAID和枚举

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

您正在使用is关键字将两个枚举相互比较。 实际上可以用于types比较 ,如此处所述。

这在Java或Kotlin中不起作用,编译器会告诉:

‘是’不允许使用枚举入口,而是使用比较

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

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

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