如何将任何投入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中实现。 泛型与类型擦除一起工作。 他们是编译时安全网,而不是运行时安全网。
- Kotlin和Android数据绑定(BuildTools 2.0.0)
- 在Kotlin中扩展泛型类
- yield在Maven项目的buildSequence中抛出KotlinNullPointerException
- 数据绑定Kotlin Android工作室错误
- setSmallIcon(图标:图标)和NotificationCompat
- 你如何从一个Kotlin函数中改变一个全局变量的值?
- 自定义反序列化器在杰克逊的任何名单
- Android kotlin onCreate(savedInstanceState:Bundle?)导致IllegalArgumentException
- 应用程序可以在kotlin中“很好地”实现吗?