加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

为什么在Scala REPL中抛出异常?

发布时间:2020-12-16 08:46:34 所属栏目:安全 来源:网络整理
导读:为什么下一段代码的最后一行会在 scala REPL中抛出错误? import scala.concurrent._import scala.concurrent.duration._import scala.concurrent.ExecutionContext.Implicits.global// This is okayval futureInt = Future[Int] { 42 }val v1 = Await.resul
为什么下一段代码的最后一行会在 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

解决方法

这个bug(包括你的确切来源)正在这个针对scala的bug中被跟踪:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读