错误:无法确定如何从游标中读取该字段.芬兰湾的科特林Android


package petbox.ae.Class
import androidx.room.Entity import androidx.room.PrimaryKey
@Entity(tableName = "products") 
data class PostModel(
@PrimaryKey val id : Int? = null,
val images: ArrayList<Data>,
val name: String,
val description: String,
val price: Double?=null ) 
data class Data(
val id: Int,
val date_created: String,
val date_created_gmt: String,
val date_modified: String,
val src: String, )

我得到的错误是:

错误:Cannot figure out how to save this field into database。您可以考虑为它添加一个类型转换器。
private final java.util.ArrayList

error:参数的类型必须是一个带@Entity注释的类或它的集合/数组。retrofit2.Call<java.util.List&lt>比;产品,@org.jetbrains.annotations.NotNull ()

错误:Cannot figure out how read this field from游标

private final java.util.ArrayList

如何让它读取它?

您需要为您的数据对象列表类型转换器。

class DataConverter {
@TypeConverter
fun fromListToString(list: List<*>): String {
val type = object: TypeToken<List<*>>() {}.type
return Gson().toJson(list, type)
}
@TypeConverter
fun toData(dataString: String?): List<Data> {
if(dataString == null || dataString.isEmpty()) {
return mutableListOf()
}
val type: Type = object : TypeToken<List<Data>>() {}.type
return Gson().fromJson(dataString, type)
}
}

和注释你的图像字段像这样:

@TypeConverters(DataConverter.class)
val images: ArrayList<Data>

这里是文档https://developer.android.com/training/data-storage/room/referencing-data

相关内容

最新更新