如何使用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
答案 0 :(得分:4)
检查枚举值时,您必须使用==
运算符!
答案 1 :(得分:1)
is
关键字应用于类型比较,如here所述。
由于编译器抱怨,使用运算符进行比较是不可能的:
Kotlin中的'是'不允许使用枚举输入,请使用比较而不是
Comparison来自两种风格:==
和===
第一个选项==
编译为equals()
,而后者===
等同于Java的==
(比较参考)。
正如我们所知,这对于枚举并没有什么影响,因为您可以在this answer中阅读。