1
這是全碼:IntelliJ IDEA的強調我與implicits Scala代碼,但是代碼工作
package com.example.controller
import spray.routing.{HttpService, Route}
import spray.http.StatusCodes
import scala.util.{Failure, Success}
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
trait RentController extends HttpService{
var books: List[String] = List("1","2","3","4")
def rentBook(intNum: Int): Future[Unit] = Future[Unit] {
val book = books.find(p => p.equals(intNum.toString))
if(book.head.equals("4")) throw new UnsupportedOperationException()
}
def giveBackBook(intNum: Int): String = {
val book = books.find(p => p.equals(intNum.toString))
book.head
}
val rent: Route =
pathPrefix("rent") {
path("book"/IntNumber) { intNum =>
get {
onComplete(rentBook(intNum)) {
case Success(_) => complete(StatusCodes.OK)
case Failure(_) => complete(StatusCodes.Accepted)
}
}
}
}
val giveBack: Route =
pathPrefix("giveBack") {
path("book"/IntNumber) { intNum =>
get {
onSuccess(Future.successful(giveBackBook(intNum))) {
extraction: String => complete(extraction)
}
}
}
}
}
是什麼奇怪的,他只強調的onSuccess,但的onComplete顯然是正確的他。代碼的作品,但我想知道如果我可能在某個地方犯了一些錯誤。所以請告訴我是否缺少一些導入,或者它只是IntelliJ錯誤。
編輯
我改變了代碼,現在功能rendBook和giveBackBook的arent在邏輯上是正確的,並沒有做太多,但你應該複製很容易
您可以發佈[MCVE]複製粘貼它不適用於任何人。 –
[錯誤報告是歡迎]與在重現出附着的示例項目(https://youtrack.jetbrains.com/issues/SCL)。 – CrazyCoder
@YuvalItzchakov如果你仔細觀察,這是最小的,完整的和可驗證的例子:)兩條路線,一個作品,一個沒有,所有進口:)每一件該代碼是需要驗證我的問題,我覺得:) –