问题如下:
map.forEach { key, value -> println("$key = $value") }
在使用上列方法对hashmap进行遍历的时候,在某些机型上出现了一个错误:ClassNotFoundException
我百度了各种关键词,都是与此无关的答案.最为接近的答案可能就是一个分析:jar包引用错误.
好吧.但是这是我能控制的吗?并不是.所以显然我没找到真正的解决方案.
最后通过谷歌,我找到了真正问题所在:改写成下列代码
map.forEach { (key, value) -> println("$key = $value") }
看起来很像对吧,仅仅是在key,value外层加上括号.原因是现在的Java8 的支持还不是特别完美,所以在内层兼容的时候出现了上述问题.简单来说加上这个括号就换了一种API引用的方式.
所以ClassNotFoundException这个提示其实完全是误导性的,这个发生在底层的问题不是我们可以处理的,如果继续在百度上坑,我可能还要浪费很多时间.
科学上网真的很重要啊.