为什么在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 ") } }
解决方法
这个bug(包括你的确切来源)正在这个针对scala的bug中被跟踪:
https://github.com/scala/bug/issues/9076#issuecomment-292435527 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |