实际上我有这个数据类,其中data是mutableList,
data class DataTable (
var total: Long = 0,
@JsonProperty("data")
var data: MutableList<Any>? = null )
我的想法是,当数据到达时,我可以将其映射到一个非常重要的实体,并尝试做到这一点
val summaryOrder2= dataTable.data as MutableList<SummaryOrder>
答案 0 :(得分:0)
投射列表有什么问题?
您可能能够实现的另一种方法是过滤实例
src/jniLibs/<ANDROID_ABI>/
答案 1 :(得分:0)
您显示的是演员表...您可能想要的是map
或filterIsInstance
。
为什么在这里强制转换一个坏主意?由于泛型类型信息在运行时被删除...您甚至可以执行mutableListOf<Apple>() as List<Orange>
,并且可能在运行时会感到震惊;-)(注意:因此,此类演员表也称为“未经检查的演员表”)
为什么使用map
或filter
?如果需要将data
列表的内容转换为那些对象,请使用map
。 。使用filter
(或filterIsInstance
)过滤掉所有与您的条件/谓词匹配的条目。
您可能要查找参考的文档。
因此,可能的解决方案得到了证明:
data?.filterIsInstance<SummaryOrder>()
data?.filterIsInstance<SomeTransformable>()
?.map { it.toSummaryOrder() /* or whatever makes those instances a SummaryOrder */ }
更多建议:
Any
作为列表类型;否则,您需要使用filterIsInstance
进行此操作