如何在翻新中为项目设置固定值

时间:2019-07-15 10:58:19

标签: android kotlin retrofit2

我有一个通过改装填充的数据类。服务器(API)中没有id字段。因此,我创建了一个val id并为其分配了一些值,例如69。但是,一旦收到数据,id的值就不是69,而是0。请帮助。

@Entity(tableName = "current_weather")
data class CurrentWeather(

    @SerializedName("last_updated_epoch")
    val lastUpdatedEpoch: Int,

// ... //

    @SerializedName("gust_kph")
    val gustKph: Float
) {
    @PrimaryKey(autoGenerate = false)
    var id: Int = 69
}

我什至尝试这样做:

data class CurrentWeather(

    @PrimaryKey(autoGenerate = false)
    val id: Int = 69,
// ... //
)

2 个答案:

答案 0 :(得分:1)

function exists(data){
   data !== null && data !== undefined
}

if( exists( maybeObject ) ){
    alert("Got here!"); 
}

更新。

这是准备写入数据库的对象。 对于您的情况,您应该从Retrofit响应对象到Data Entity数据类编写一个映射器/转换器。

答案 1 :(得分:1)

好吧,这似乎是GSON的问题,因为它不能正确地支持kotlin,所以需要序列化和反序列化。阅读Gson Deserialization with Kotlin, Initializer block not called了解更多信息。