Календарь TypeConverter для комнаты (Котлин) - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь сохранить временную метку в базе данных моей комнаты, используя следующую команду: TypeConverter:

class Converters {

    @TypeConverter
    fun fromTimestamp(value: Long?): Calendar? {

        if(value == null) return null

        val cal = GregorianCalendar()
        cal.timeInMillis = value
        return cal
    }

    @TypeConverter
    fun toTimestamp(timestamp: Calendar?): Long? {

        if(timestamp == null) return null

        return timestamp.timeInMillis
    }
}

Две из моих сущностей включают следующую колонку:

@ColumnInfo(name = "timestamp")
val timestamp: Calendar?,

Но яполучить ошибку компиляции при попытке построить проект - у меня не было проблем при использовании примера Date TypeConverter из справочного руководства разработчика.

Я не могу увидеть, что является настоящей ошибкой, поскольку я просто получаю кучу ошибок привязки данных «не могу найти символ», если что-то не так с кодом, связанным с Room.

1 Ответ

0 голосов
/ 18 февраля 2019

Использование:

object Converters {
    @TypeConverter
    @JvmStatic
    fun fromTimestamp(value: Long?): Calendar? = value?.let { value ->
        GregorianCalendar().also { calendar ->
            calendar.timeInMillis = value
        }
    }

    @TypeConverter
    @JvmStatic
    fun toTimestamp(timestamp: Calendar?): Long? = timestamp?.timeInMillis
}

И

@TypeConverters(Converters::class)
abstract class AppDatabase : RoomDatabase() {
...