Room:“错误:不确定如何将Cursor转换为此方法的返回类型”。建立合适的转换器

时间:2018-10-03 14:29:24

标签: android database class optional typeconverter

我正在尝试为我的自定义类构建TypeConverter。

需要TypeConverter的类是这样:

class Optional<out T>(val value: T? = null) {

    companion object {

        fun <T> of(value: T?): Optional<T> {
            return Optional(value)
        }

        fun <T> empty(): Optional<T> {
            return Optional()
        }
    }

    fun hasValue(): Boolean {
        return value != null
    }

}

这是我的DAO方法

@Query("SELECT * FROM item WHERE id = :id")
fun get(id: Long): Optional<ItemData>

这是我当前的TypeConverter

object OptionalConverter {
    @TypeConverter
    fun <T> fromOptional(optional: Optional<T>): T? {
        return if (!optional.hasValue()) null else optional.value
    }

    @TypeConverter
    fun <T> toOptional(value: T): Optional<T> {
        return Optional(value)
    }    
}

构建时出现以下错误

  

错误:不确定如何将游标转换为此方法的返回类型

当然问题是TypeConverter。这样可以并为我的Optional类使用TypeConverter吗?

0 个答案:

没有答案