使用 WHEN 时如何避免类型预期错误?

How to avoid Type expected error while using WHEN?

我正在尝试在 Int 和 Priority 之间编码 type converter。这是一个房间数据库。

class PriorityConverter {
    companion object {
        @TypeConverter
        @JvmStatic
        fun intToPriority(number: Int?): Priority? = when (number) {
            is 1 -> Priority.Low
            is 2 -> Priority.Medium
            is 3 -> Priority.High
            else -> Priority.Low
        }
    }
}

问题是我收到以下错误。

Type expected

可能是什么问题?

is 用于类型比较。对于值比较,只需使用值:

class PriorityConverter {
    companion object {
        @TypeConverter
        @JvmStatic
        fun intToPriority(number: Int?): Priority? = when (number) {
            1 -> Priority.Low
            2 -> Priority.Medium
            3 -> Priority.High
            else -> Priority.Low
        }
    }
}