按枚举类属性Kotlin过滤

时间:2017-08-16 16:20:23

标签: enums 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和Enum

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

is关键字应用于类型比较,如here所述。 由于编译器抱怨,使用运算符进行比较是不可能的:

  

'是'不允许使用枚举输入,请使用比较而不是

Kotlin中的

Comparison来自两种风格=====

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

正如我们所知,这对于枚举并没有什么影响,因为您可以在this answer中阅读。