Правильно не будет сериализоваться в посылку в Котлин - PullRequest
0 голосов
/ 18 мая 2018

Я хочу, чтобы мои переменные не были от моего конструктора, часть моего Parcelable.Тем не менее, я сталкиваюсь с этим предупреждением «Правильно не будет сериализоваться в посылку», которое сообщает мне, что я не могу сделать это в настоящее время.

Я использую Kotlin в экспериментальный v.1.2.41.

Как я могу это сделать?

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

    val average: List<DayStat> by lazy {
        calculateAverage(myList)
    }

1 Ответ

0 голосов
/ 19 мая 2018

Вы хотите сделать его частью Parcelable (просто отметьте @Transient) или записать его в посылку?

Во втором случае проектная документация объясняет, почему это проблема (поиск "Свойства с инициализаторами, объявленными в теле класса"), а лень только делает смысл менее понятным.

Если вы можете жить без лени, вы можете сделать это:

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