【发布时间】:2018-01-17 10:12:40
【问题描述】:
import cats.Monad
import cats.instances.future._
import scala.concurrent._
import scala.concurrent.duration._
import scala.concurrent.ExecutionContext.Implicits.global
val fm = Monad[Future]
Await.result(
fm.flatMap(fm.pure(1)) {
x => fm.pure(x+2)
}, 1.second
)
这给了我一个运行时异常,我不明白为什么。我正在使用 scala 版本 2.12.2 和猫版本cats-core_2.12
java.lang.NoClassDefFoundError: 无法初始化类 $line9.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$ 在 scala.concurrent.Future.$anonfun$flatMap$1(Future.scala:302) 在 scala.concurrent.impl.Promise.$anonfun$transformWith$1(Promise.scala:37) 在 scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60) 在 scala.concurrent.impl.ExecutionContextImpl$AdaptedForkJoinTask.exec(ExecutionContextImpl.scala:140) 在 java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) 在 java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) 在 java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) 在 java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) java.util.concurrent.TimeoutException:期货在 [1 之后超时 第二]在 scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:255) 在 scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:259) 在 scala.concurrent.Await$.$anonfun$result$1(package.scala:215) 在 scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53) 在 scala.concurrent.Await$.result(package.scala:142) ... 43 省略
【问题讨论】:
标签: scala monads future scala-cats