如何将任何投入Kotlin列表?

当我尝试像下面这个例子那样将任何东西转换成列表的时候,我会得到'取消选中的转换:任何转换为​​列表'的警告。 有这种问题的解决方法吗?

val x: List<Apples> = objectOfTypeAny as List<Apples> 

这只是一个警告,说只是施放而不是100%安全。 更好的选择是:

 if (objectOfTypeAny is List<*>) { val a: List<Apples> = objectOfTypeAny.filterIsInstance<Apples>() ... } 

有关详细信息,请参阅https://kotlinlang.org/docs/reference/typecasts.html

除了忽略警告(或改进设计以避免演员),否。

这个警告意味着即使列表实际上不是一个List<Apples> ,但是包含Apples以外的东西,转换在运行时也可以成功。

它存在,因为泛型没有在Java中实现。 泛型与类型擦除一起工作。 他们是编译时安全网,而不是运行时安全网。