Комната: «Ошибка: Не уверен, как преобразовать Курсор в тип возврата этого метода».Строим правильный конвертер - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь создать 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)
    }    
}

При сборке я получаю следующую ошибку

Ошибка: Не уверен, как преобразовать Курсор в возврат этого методаtype

Конечно, проблема в TypeConverter.Можно ли сделать так и использовать TypeConverter для моего факультативного класса?

...