【问题标题】:Scala / Play 2.5: Overloaded method apply with alternativesScala / Play 2.5:重载方法适用于替代方案
【发布时间】:2016-03-18 21:15:19
【问题描述】:

我正在使用 Scala & Play 2.5。我被这个错误困住了:

Game.scala:99: overloaded method value apply with alternatives:
[error]   (block: => play.api.mvc.Result)play.api.mvc.Action[play.api.mvc.AnyContent] <and>
[error]   (block: play.api.mvc.Request[play.api.mvc.AnyContent] => play.api.mvc.Result)play.api.mvc.Action[play.api.mvc.AnyContent] <and>
[error]   [A](bodyParser: play.api.mvc.BodyParser[A])(block: play.api.mvc.Request[A] => play.api.mvc.Result)play.api.mvc.Action[A]
[error]  cannot be applied to (Object)
[error]     def start(id: String, apiKey: Option[String]) = Action {

这是函数:

def start(id: String, apiKey: Option[String]) = Action {
  apiKey match {
    case Some(API_KEY) => {
      Server.actor ! Server.Start(id)
      Ok("Started")
    }
    case _ => Future.successful(Unauthorized)
  }
}

【问题讨论】:

    标签: scala playframework-2.5


    【解决方案1】:

    问题是,match 语句的结果已被推断为 Object,因为从一个 case 语句返回 Result,从另一个 case 语句返回 Future[Result],所以唯一常见的超类型是Object。要修复,请将case _ =&gt; Future.successful(Unauthorized) 更改为case _ =&gt; Unauthorized

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-04
      • 2021-12-22
      • 1970-01-01
      • 1970-01-01
      • 2015-07-05
      • 2021-09-12
      相关资源
      最近更新 更多