Scala / Play 2.5:重载方法适用于替代方法
Scala / Play 2.5: Overloaded method apply with alternatives
我正在使用 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)
}
}
问题是,match
语句的结果已被推断为 Object
,因为从一个 case 语句返回 Result
,而从另一个 case 语句返回 Result
正在返回 Future[Result]
,因此唯一常见的超类型是 Object
。要修复,请将 case _ => Future.successful(Unauthorized)
更改为 case _ => Unauthorized
。
我正在使用 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)
}
}
问题是,match
语句的结果已被推断为 Object
,因为从一个 case 语句返回 Result
,而从另一个 case 语句返回 Result
正在返回 Future[Result]
,因此唯一常见的超类型是 Object
。要修复,请将 case _ => Future.successful(Unauthorized)
更改为 case _ => Unauthorized
。