Список не может быть приведен к моему классу, который расширяет список. Зачем? - PullRequest
1 голос
/ 06 августа 2020

У меня два класса.

class QuestionList : ArrayList<QuestionItem>()

data class QuestionItem(
        val id: Int,
        val order: Int,
        val header: String,
       
)

Когда я отфильтровывал объект questionList, он возвращал список массивов questionItem.

var questionList = gson.fromJson(str, QuestionList::class.java)
val filteredQuestionList = questionList.filter { it.lesson_id == id } as QuestionList // error here. cannot be cast

Я хочу преобразовать ArrayList в QuestionList. но я ошибаюсь, что список не может быть передан в QuestionList. У меня есть список QuestionItem, но мне нужен объект QuestionList. Как решить эту проблему, кастингом или другим способом?

1 Ответ

1 голос
/ 06 августа 2020

Проблема здесь в том, что метод filter не знает вашего класса QuestionList, поэтому он возвращает новый отфильтрованный List<QuestionItem>, который не является QuestionList.

Для решения проблемы, если класс QuestionList действительно является пустым подклассом, вы можете просто использовать List<QuestionItem> везде, где вы сейчас используете QuestionList (кроме вызова Gson), или вызвать .toMutableList(), если вы нужно, чтобы результат был изменяемым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...