我有两节课。

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对象。如何通过强制转换或其他方式解决此问题?

最佳答案

这里的问题是filter方法不知道您的QuestionList类,因此它返回一个不是List<QuestionItem>的新的已过滤QuestionList
要解决此问题,假设QuestionList类确实是一个空子类,则可以在当前正在使用List<QuestionItem>的任何地方(Gson调用除外)简单地使用QuestionList,或者如果需要结果可变则调用.toMutableList()

关于android - List无法转换为扩展List的我的类(class)。为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63281417/

10-11 03:27