将自定义对象列表与 Room 一起使用时出现错误。
error: Cannot figure out how to save this field into database. You can consider adding a type converter for it.
所以我的数据类是这样的:@Entity(tableName = "calorie_daily_table")
data class CalorieDaily(
@PrimaryKey
var date: String,
var breakfast: List<Meal>)
data class Meal(
var foodItem: String,
var foodQuantity: String,
var calorie: Int)
我怎样才能写一个 TypeConverter 来处理这个?所以,我有这样的事情:
class Converter {
var gson = Gson()
@TypeConverter
fun foodItemToString(foodItems: List<FoodItem>): String {
return gson.toJson(foodItems)
}
@TypeConverter
fun stringToFoodItem(data: String): List<FoodItem> {
val listType = object : TypeToken<List<FoodItem>>() {
}.type
return gson.fromJson(data, listType)
}
}
但是,仍然得到同样的错误。
最佳答案
您必须添加注释 @Embedded
到您的第二个数据类 Meal
关于java - 用于自定义对象的 Android 房间类型转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63154562/