scala - 为什么在 Scala REPL 中以下会抛出异常?

标签 scala scala-repl

为什么以下代码的最后一行在 scala REPL 中抛出错误?

import scala.concurrent._
import scala.concurrent.duration._
import scala.concurrent.ExecutionContext.Implicits.global

// This is okay
val futureInt = Future[Int] { 42 }
val v1 = Await.result(futureInt, 1.second)

// This throw error: java.lang.NoClassDefFoundError: Could not initialize class $line8.$read$$iw$$iw$$iw$$iw$$iw$$iw$
val v2 = Await.result(Future[Int]{ 42 }, 1.second)

但是当我创建一个主类并执行相同的代码时,它工作正常:

import scala.concurrent._
import scala.concurrent.duration._
import scala.concurrent.ExecutionContext.Implicits.global

object Main {
  def main(args: Array[String]): Unit = {
    val futureInt = Future[Int] { 42 }
    val v1 = Await.result(futureInt, 1.second)
    val v2 = Await.result(Future[Int] { 44 }, 1.second)
    println(s"v1=$v1, v2=$v2 ")
  }
}

Output:

v1=42, v2=44

最佳答案

此错误(包括您的确切来源)正在针对 scala 的此错误中进行跟踪:

https://github.com/scala/bug/issues/9076#issuecomment-292435527

关于scala - 为什么在 Scala REPL 中以下会抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53931195/

相关文章:

scala - 封装在 Future 中的同步 HTTP 请求是否被视为 CPU 或 IO 限制?

scala - 如何使用 `asRight` 创建带有猫的 Either 实例

java - 如何在scala repl中加载和使用 native 库?

Scala - 领域对象建模

scala - Spark : unpersist RDDs for which I have lost the reference

scala - 在 Scala 中创建一个任意类作为 monad 实例

scala - 从 CLI 快速切换 Scala 版本

java - 如何从 Java 调用 Scala 的 HashMap.toArray()?

Scala REPL 在 Ubuntu 上不起作用

scala - scala REPL 打印的是实例名称/id 吗?