首页 > 解决方案 > 使用 WHEN 时如何避免键入预期错误?

问题描述

我正在尝试在 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
        }
    }
}

问题是我收到以下错误。

预期类型

可能是什么问题?

标签: androidkotlintype-conversionandroid-roomconverters

解决方案


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
        }
    }
}

推荐阅读