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

Sla*_*zer 1 android type-conversion converters kotlin android-room

我正在尝试编写Int 和 Priority 之间的类型转换器。这是一个房间数据库。

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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是我收到以下错误。

预期类型

可能是什么问题?

Com*_*are 5

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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)