kotlin下关于hashmap foreach时引发的一个问题

问题如下:


 map.forEach { key, value -> println("$key = $value") }

在使用上列方法对hashmap进行遍历的时候,在某些机型上出现了一个错误:ClassNotFoundException


我百度了各种关键词,都是与此无关的答案.最为接近的答案可能就是一个分析:jar包引用错误.

好吧.但是这是我能控制的吗?并不是.所以显然我没找到真正的解决方案.

最后通过谷歌,我找到了真正问题所在:改写成下列代码

map.forEach { (key, value) -> println("$key = $value") }


看起来很像对吧,仅仅是在key,value外层加上括号.原因是现在的Java8 的支持还不是特别完美,所以在内层兼容的时候出现了上述问题.简单来说加上这个括号就换了一种API引用的方式.

所以ClassNotFoundException这个提示其实完全是误导性的,这个发生在底层的问题不是我们可以处理的,如果继续在百度上坑,我可能还要浪费很多时间.

科学上网真的很重要啊.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值