Я пытаюсь сохранить метку времени в базе данных моей комнаты, используя следующее 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?,
Но я получаю ошибку компиляции при попытке собрать проект — у меня не было проблем при использовании примера DateTypeConverter из справочника разработчика.
Я не могу увидеть, в чем заключается фактическая ошибка, поскольку я просто получаю кучу ошибок привязки данных «не могу найти символ», если что-то не так с кодом, связанным с Room.





Использовать:
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() {
Используя класс вместо объекта, вы можете избежать использования @JvmStatic. Класс объекта работает как синглтон, поэтому все методы внутри объекта являются статическими.