Я столкнулся с проблемами при попытке сохранить Kotlin Enum with Room как JSON (с использованием Gson) . Я полностью следовал официальной инструкции Google и добавил TypeConverter, но он продолжает выдавать ошибку: Не могу понять, как сохранить это поле в базе данных. Вы можете добавить для него конвертер типов.
Моя сущность класс:
@Entity(tableName = TextHighlight.TABLE_NAME)
data class TextHighlight.TABLE_NAME(
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = COLUMN_ID)
var id: Long = 0,
@TypeConverters(HighlightingColorConverter::class)
@ColumnInfo(name = COLUMN_HIGHLIGHT)
var color: HighlightingColor
) {
Моя Kotlin Перечисление класс :
enum class HighlightingColor(
@SerializedName("rgb")
var rgb: String,
@SerializedName("title")
var title: String
)
My TypeConverter :
class HighlightingColorConverter {
@TypeConverter
fun fromHighlightingColor(highlight: HighlightingColor) = Gson().toJson(highlight)
@TypeConverter
fun toHighlightingColor(s: String): HighlightingColor =
Gson().fromJson(s, HighlightingColor::class.java)
}
Не могу понять, что не так. Пожалуйста, помогите разобраться!