【问题标题】:Cannot resolve method success.unapply when working with a Future[Unit]无法解析方法 success.unapply 使用 Future[Unit] 时
【发布时间】:2019-05-24 18:33:49
【问题描述】:

我正在尝试在 Future 中执行一些代码,它将一些数据保存到 REST 端点,该端点本身会进行数据库调用。我正在尝试在 Future 中执行它,因此它不会阻止它周围的其他代码,这可能是时间敏感的。如果它成功,我真的不在乎未来代码中会发生什么,所以我正在尝试执行一个 Future[Unit]。但是,当我尝试编写以下代码时,IntelliJ 会在我的 Success(_) 下划线

无法解析方法success.unapply

这是我的代码:

def persistProgress():Unit = {
    val result:Future[Unit] = Future {
      //API Rest Call here with a case class
    }
    result.onComplete {
      case Success (_) => // do nothing if successful
      case Failure(e) => logger.info("Unable to persist" + e.getMessage)
    }

}

知道怎么做吗?

【问题讨论】:

  • 在这种特殊情况下,.failed.foreach(...)呢?
  • 如果您使用 Scala 编译器直接或通过 sbt 构建,您会得到相同的错误吗?错误是真的说success.unapply 还是Success.unapply?如果没有,我想你会得到一个不同的错误,但你肯定导入了Success,对吧?

标签: scala future


【解决方案1】:

你确定你得到了正确的进口吗?特别是SuccessFailure 来自Try,即scala.util.Successscala.util.Failure。正确导入的代码似乎可以正常工作,如您所见here

【讨论】:

    【解决方案2】:

    您可能在您的代码中导入了两次Success,这使得成功的引用模棱两可。 就我而言,我导入了以下两行:

    import akka.actor.Status.Success
    import scala.util.Success
    

    只需尝试运行您的代码,错误将有助于调试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-21
      相关资源
      最近更新 更多