在Kotlin中,不会将其序列化为包裹

Gui*_*gis 8 parcelable kotlin kotlin-android-extensions

我希望我的变量不是来自我的构造函数,而是我的Parcelable的一部分.但是,我面对这个警告"有些不会序列化成一个包裹",这告诉我目前我不能这样做.

我在实验 v.1.2.41中使用Kotlin .

我能怎么做 ?

@Parcelize
data class MyClass(private val myList: List<Stuff>) : Parcelable {

    val average: List<DayStat> by lazy {
        calculateAverage(myList)
    }
Run Code Online (Sandbox Code Playgroud)

Ale*_*nov 10

你想让它成为Parcelable(只是标记@Transient)的一部分或将其写入包裹吗?

在第二种情况下,设计文档解释了为什么这是一个问题(搜索"具有在类体中声明的初始化器的属性")并且懒惰只会使含义不太清楚.

如果你可以没有懒惰,你可以这样做:

@Parcelize
data class MyClass (private val myList: List<Stuff>, val average: List<DayStat> = calculateAverage(myList)) : Parcelable {
    ...
}
Run Code Online (Sandbox Code Playgroud)