android kotlin对象类型,Android:如何为所有通用类型转换器(for Room)制作Kotlin中的对象列表...

我在我的项目中使用Room作为本地数据库解决方案。 对于我添加类型转换器到项目中,以便类型转换器会是这个样子的某个对象类型的每个列表:Android:如何为所有通用类型转换器(for Room)制作Kotlin中的对象列表

@TypeConverter

fun convertListToString(video: List): String {

val videoArray = arrayOfNulls(video.size)

for (i in 0..video.size - 1) {

videoArray[i] = video[i]

}

var str = ""

val gson = Gson()

for (i in videoArray.indices) {

val jsonString = gson.toJson(videoArray[i])

str = str + jsonString

if (i < videoArray.size - 1) {

str = str + strSeparator

}

}

return str

}

@TypeConverter

fun convertStringToList(videoString: String): List {

val videoArray = videoString.split(strSeparator.toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()

val videos = ArrayList()

val gson = Gson()

for (i in 0 until videoArray.size - 1) {

videos.add(gson.fromJson(videoArray[i], VideoType::class.java))

}

return videos

}

唯一的问题是,我有一大堆不同类型的列表的那个需要转换,所以目前我只是复制这个代码的每一种类型。我想使用泛型,但到目前为止还没有弄清楚如何去做。

例如使用类似:

@TypeConverter

inline fun convertStringToList(string: String): List {

val objectArray = string.split(strSeparator.toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()

val objects = ArrayList()

val gson = Gson()

for (i in 0 until objectArray.size - 1) {

objects.add(gson.fromJson(objectArray[i], T::class.java))

}

return objects

}

不能正常工作,并导致了Android Studio的编译错误,给我一个错误说服力:类型转换器必须是公共

任何人的想法如何我可以为我的房间类型转换器使用泛型?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值