Я буквально вчера начал с использования Kotlin, поэтому мне все еще трудно понять основные принципы. Я хочу отправить объект через намерение к другой деятельности и реализовал parcelable на объекте. Объект содержит несколько списков MutableLists в виде:
var favoritePlaces: MutableList<String?>? = null
Я использовал этот конструктор метода для его разделения:
constructor(`in`: Parcel) {
`in`.readList(favoritePlaces, String::class.java.classLoader)
}
Это ошибка, которую я получаю в Android Studio, так как существует несоответствие типов:
![Android Studio error](https://i.stack.imgur.com/JDL3b.png)
Я попытался go с предложением Android Studio оставив меня здесь, в конструкторе:
constructor(`in`: Parcel) {
`in`.readList(favoritePlaces as List<*>, String::class.java.classLoader)
}
И в методе writeToParcel:
override fun writeToParcel(dest: Parcel, flags: Int) {
dest.writeList(favoritePlaces as List<*>?)
}
Но когда я пытаюсь использовать это, я получаю следующее сообщение об ошибке при запуске Activity:
java .lang.RuntimeException: невозможно запустить действие ComponentInfo {com.test.app.Activity}: kotlin .TypeCastException: нельзя преобразовать значение NULL в ненулевой тип kotlin .collections.List <*>
Я понимаю, что тип kotlin .collections.List <*> является ненулевым типом, и, поскольку у меня есть несколько нулевых полей в моих массивах, имеет смысл, что эта ошибка возникает. Мой вопрос сейчас, как я могу разделить строковые массивы в Kotlin с непустыми, а также пустыми полями ???