Kotlin:将双精度数转换为整数时会发生ClassCastException吗?

时间:2019-01-05 18:05:12

标签: kotlin casting

我需要在Kotlin中进行for循环:

MyClass

但是我得到这个错误:

for (setNum in 1..(savedExercisesMap[exerciseKey] as HashMap<*, *>)["sets"] as Int){

我认为这不会成为问题。有这种情况发生的原因以及如何解决?

1 个答案:

答案 0 :(得分:2)

使用Double关键字从Intas的铸造将永远不会成功。它们都扩展了Number类,并且都没有扩展其他类,因此此转换既不是向下转换也不是向上转换。要将Kotlin中的double转换为int,应使用.toInt()函数。

val aDouble: Double = 2.22222
//val anInt = aDouble as Int // wrong
val anInt = aDouble.toInt() // correct