相关疑难解决方法(0)

java.lang.NoSuchMethodError:scala.Predef $ .refArrayOps

我有以下课程:

import scala.util.{Success, Failure, Try}


class MyClass {

  def openFile(fileName: String): Try[String]  = {
    Failure( new Exception("some message"))
  }

  def main(args: Array[String]): Unit = {
    openFile(args.head)
  }

}
Run Code Online (Sandbox Code Playgroud)

其中有以下单元测试:

class MyClassTest extends org.scalatest.FunSuite {

  test("pass inexistent file name") {
    val myClass = new MyClass()
    assert(myClass.openFile("./noFile").failed.get.getMessage == "Invalid file name")
  }

}
Run Code Online (Sandbox Code Playgroud)

当我运行时,sbt test我收到以下错误:

java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)Lscala/collection/mutable/ArrayOps;
        at org.scalatest.tools.FriendlyParamsTranslator$.translateArguments(FriendlyParamsTranslator.scala:174)
        at org.scalatest.tools.Framework.runner(Framework.scala:918)
        at sbt.Defaults$$anonfun$createTestRunners$1.apply(Defaults.scala:533)
        at sbt.Defaults$$anonfun$createTestRunners$1.apply(Defaults.scala:527)
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
        at scala.collection.immutable.Map$Map1.foreach(Map.scala:109)
        at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
        at scala.collection.AbstractTraversable.map(Traversable.scala:105)
        at sbt.Defaults$.createTestRunners(Defaults.scala:527)
        at sbt.Defaults$.allTestGroupsTask(Defaults.scala:543)
        at …
Run Code Online (Sandbox Code Playgroud)

scala

35
推荐指数
4
解决办法
4万
查看次数

有没有办法阻止 Scala 2.12 破坏 Jackson 对象映射器?

我正在将我的 Scala 版本从 2.11 升级到 2.12,对象映射器似乎坏了。我的代码的其他部分需要仅在 2.12 下可用的功能。

使用 scala 2.12 和 spark 2.1提到重建 Jackson 作为可能的解决方案。这真的有必要还是有更简单的解决方案?

Scala 2.11.0 的 SBT 配置

// Identity
name := "ScalaJsonSpike00"
organization := "com.acme"

// Versions
version := "1.0"
scalaVersion := "2.11.0"

// Scala test
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.0" % "test"

// JSON
// https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind
libraryDependencies += "com.fasterxml.jackson.core" % "jackson-databind" % "2.8.8"
// https://mvnrepository.com/artifact/com.fasterxml.jackson.module/jackson-module-scala_2.11
libraryDependencies += "com.fasterxml.jackson.module" % "jackson-module-scala_2.11" % "2.8.8"
Run Code Online (Sandbox Code Playgroud)

2.11 和 2.12 的代码

import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.module.scala.DefaultScalaModule
import …
Run Code Online (Sandbox Code Playgroud)

scala jackson

2
推荐指数
1
解决办法
5954
查看次数

标签 统计

scala ×2

jackson ×1