У меня есть MutableList<Card>
с именем cards
, который я сортирую на основе одного из свойств, используя функцию sortedWith
. Это возвращает отсортированный общий тип списка, поэтому приведение необходимо. Тем не менее, когда я приведу список, он падает с ClassCastException:
private var cards: MutableList<Card> = ArrayList()
...
cards = cards.sortedWith(compareBy{it.face}) as ArrayList<Card>
java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
РЕДАКТИРОВАТЬ: Я только что понял, что мне нужно использовать более общий тип карт для разыгрывания, MutableList<Card>
. Теперь кто-нибудь может объяснить, почему происходит сбой приведения с использованием ArrayList?