如何将任何投入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 Studio Canary中将Kotlin还原为Java代码5
- 我在Android与Kotlin错误
- 有问题从fragmentManager / MapFragment移动到supportfragmentManager / SupportMapFragment
- 有没有办法关闭在Kotlin使用站点协方差?
- Kotlin:跳过协程
- Kotlin中的变量,与Java的区别。 var vs val?
- 从Kotlin Android中的DatePickerDialog获取日期
- 尽管使用RxJava在另一个线程上订阅,但在使用Google的People API时仍然收到IllegalStateExceptionexception