通过枚举类属性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的==
(比较引用)。
正如我们所知,这对于枚举并没有太大的作用,正如你可以在这个答案中看到的一样。