当前位置: 首页 > 知识库问答 >
问题:

Scala/Akka Future on complete Success编译器错误

丌官星渊
2023-03-14

我有一个等待未来结果的演员。在将来的Complete上调用会导致编译器错误:

错误:构造函数无法实例化为预期的类型 [scalac] 找到 : akka.actor.Status.Success [scalac] required: scala.util.Try[Iterable[Any]] [scalac] case Success(result: List[PCBInstanceStats]) =

演员的接收:

case "pcbStatus" => {
      val future = Future.traverse(context.children)(x => {
        (x ? "reportStatus")(5 seconds)
      })

      future.onComplete {
        case Success(result: List[PCBInstanceStats]) => {
          self ! result
        }
      }

不知道如何为此提供正确的参数类型。

共有1个答案

况经纬
2023-03-14
[scalac] found : akka.actor.Status.Success 

这意味着编译器看到您的< code>Success并认为它是一个< code > akka . actor . status . Success ,而实际上您指的是一个< code>scala.util.Success。你可能有一个导入akka成功类的导入。

移除< code > akka . actor . status . success 的导入,或者通过完全限定该类或使用导入别名来解决不明确性,例如

import scala.util.{Success => ScalaSuccess}

future.onComplete {
  case ScalaSuccess(result) => ...
  // or
  case scala.util.Success(result) => ...
}
 类似资料:
  • 我得到这个错误: 我该怎么解决这个? 我使用的是Scala 2.12.8和Vert.x 3.7.1 感谢提前!

  • 问题内容: 以下代码块在1.8.11中可以正常编译,但在1.8.20中会引发错误 我得到的错误是java:找不到适合过滤器的方法(com.google.common.base.Predicate) 在更新8和20之间是否存在会影响此代码的更改?我在两种情况下都使用相同版本的guava 17.0(最新版本),唯一的变化是Java中的更新版本。 任何帮助是极大的赞赏。 编辑 显示错误的行是 问题答案:

  • 我最近在部署到我们的共享主机时遇到了问题。从 Visual Studio 通过 Web 部署进行部署时,99% 的时间我在登录后在登录页面或主页上收到此错误。有时我可能会点击几下不同的部分,然后它就会击中。它通常会在几分钟到90分钟后消失。 运行Windows Server 2012 R2 Standard、IIS8和.NET 4.5的Web主机。 Web主机建议我需要使用Visual Studi

  • 我试图编译一个MavenJava /Scala混合项目,它有一个Scala类,该类依赖于带有lombok注释的Javabean。我尝试将lombok jar文件添加到Scala编译器的引导类路径以及lombok代理中,但是编译器仍然无法找到生成的getters。Scala编译器是否有办法识别Lombok注释?如果没有,什么是好的解决方案? 请注意,我试图避免引入另一个maven项目,只是为了先编译