我希望我的构造函数中的变量不是,我的Parcelable的一部分。 但是,我面对这个警告“有些不会序列化成包裹”,这告诉我目前我不能这样做。
我在 experimental v.1.2.41中使用Kotlin。
我该怎么办?
@Parcelize
data class MyClass(private val myList: List<Stuff>) : Parcelable {
val average: List<DayStat> by lazy {
calculateAverage(myList)
}
答案 0 :(得分:6)
你想让它成为Parcelable
的一部分(只标记@Transient
)或将其写入包裹吗?
在第二种情况下,the design document解释了为什么这是一个问题(搜索“在类体中声明了初始化器的属性”),懒惰只会使含义不太明确。
如果你没有懒惰,你可以这样做:
@Parcelize
data class MyClass (private val myList: List<Stuff>, val average: List<DayStat> = calculateAverage(myList)) : Parcelable {
...
}