首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不调用TypeConverter

不调用TypeConverter
EN

Stack Overflow用户
提问于 2019-10-03 12:41:05
回答 1查看 52关注 0票数 0

不调用TypeConverter

我打了个电话,打给innerRateToJson,但从来没有打过fromJsonToInnerRates

代码语言:javascript
复制
class Converters {
    @TypeConverter
    fun innerRateToJson(innerRate : HashMap<String, Double>): String? {
        val type = object : TypeToken<HashMap<String, Double>>() {}.type
        return Gson().toJson(innerRate, type)
    }

    @TypeConverter
    fun fromJsonToInnerRates(innerRatesString : String): HashMap<String, Double>? {
        val type = object : TypeToken<HashMap<String, Double>>() {}.type
        return Gson().fromJson<HashMap<String, Double>>(innerRatesString, type)
    }
}

和我的数据类

代码语言:javascript
复制
data class Rates (
    @PrimaryKey(autoGenerate = true)
    @SerializedName("id")
    val id: Int,

    @ColumnInfo(name = "base")
    @SerializedName("base")
    val base: String,

    @ColumnInfo (name = "date")
    @SerializedName ("date")
    val date: String,

    @ColumnInfo (name = "rates")
    @SerializedName ("rates")
    @TypeConverters(Converters::class)
   val rates: HashMap<String, Double> = HashMap()
) : Parcelable

不知道该怎么办

EN

回答 1

Stack Overflow用户

发布于 2019-10-03 15:44:22

这是因为你的变量修饰符。

将变量设置为val会使其成为只读的,因此您无法访问它。

只需将其切换到var即可。

代码语言:javascript
复制
@ColumnInfo (name = "rates")
@SerializedName ("rates")
@TypeConverters(Converters::class)
var rates: HashMap<String, Double> = HashMap()

您可以查看varval here之间的区别。

您还应该在AppDatabase类上定义您的转换器。

代码语言:javascript
复制
@Database(entities = arrayOf(Rates::class), version = 1)
@TypeConverters(Converters::class)
abstract class AppDatabse : RoomDatabase()

尝试使用@TypeConverter下面的@JvmStatic,如下所示

代码语言:javascript
复制
@TypeConverter
@JvmStatic
    fun innerRateToJson(innerRate : HashMap<String, Double>): String? {
        val type = object : TypeToken<HashMap<String, Double>>() {}.type
        return Gson().toJson(innerRate, type)
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58212422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档