代码之家  ›  专栏  ›  技术社区  ›  Slazer

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

  •  0
  • Slazer  · 技术社区  · 6 年前

    我正试图编码一个 type converter 介于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
            }
        }
    }
    

    问题是我得到以下错误。

    需要类型

    有什么问题吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   CommonsWare    6 年前

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