我在使用 Spark 和 Scala 时遇到了一个奇怪的错误。我有一段声明变量的代码:
var offset = 0
这会导致以下异常:
java.lang.NoSuchMethodError: scala.runtime.IntRef.create(I)Lscala/runtime/IntRef;
at my.package.MyClass$class.myMethod(MyClass.scala:5)
...
它直接指向变量声明。我正在使用 Scala 2.11.2。编译作品。这是一个运行时错误。运行时我没有收到任何依赖项/版本不匹配警告sbt package
either.
这几乎肯定是 scala 版本不匹配。
对比v2.10和v2.11中IntRef的定义,可以看到create
仅在后一个版本中引入(参见https://github.com/scala/scala/blob/v2.10.4/src/library/scala/runtime/IntRef.java and https://github.com/scala/scala/blob/v2.11.0/src/library/scala/runtime/IntRef.java)。
您可以打赌,您的某些依赖项是针对 scala 版本 https://github.com/jrudolph/sbt-dependency-graph)来检查你的传递依赖。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)