1
私はSparkのフレームワークをJavaで使っていました。 スカラを使いたいです。ScalaとSparkJava、ラムダ式の使い方
私はScalaで簡単なルートを定義する方法を理解するのに苦労しています。あなたはScalaの2.12.xを使用している場合
get('/article/:date', (req, res) -> {
return "";
});
私はSparkのフレームワークをJavaで使っていました。 スカラを使いたいです。ScalaとSparkJava、ラムダ式の使い方
私はScalaで簡単なルートを定義する方法を理解するのに苦労しています。あなたはScalaの2.12.xを使用している場合
get('/article/:date', (req, res) -> {
return "";
});
は、Scalaの関数はSAMがJava関数に直接変換することを試みますので、これは動作します:Javaで
私はこのようにそれを行うだろう
import spark.Spark.get
import spark.{Request, Response, Route}
object Example {
def main(args: Array[String]): Unit = {
get("/article/:date", new Route {
override def handle(request: Request, response: Response) = ""
})
}
}
:
object Example {
def main(args: Array[String]): Unit = {
get("/article/:date", (req, res) => "")
}
}
そうでない場合は、明示的にRoute
にhandle
メソッドを実装する必要がありますおそらく
それともRoute
の機能を両立させるためにいくつかの暗黙の提供:
object Example {
implicit def func2ToRoute[T <: AnyRef](f: (Request, Response) => T): Route = new Route {
override def handle(request: Request, response: Response) = f(request, response)
}
def main(args: Array[String]): Unit = {
get("/article/:date", (req: Request, res: Response) => "")
}
}
私は最初のオプションをしようとしています。スカラIDE(scalaのウェブサイトからEclipseに基づいたもの)が私にエラーを表示していることを除けば、すべてがうまくコンパイルされています。 – ProNOOB
私はパラメータタイプを追加することを決めました。 (x $ 1:String、x $ 2:spark.Route)ユニットは(String、(spark.Request、spark.Response)⇒String)に適用できません。 – ProNOOB
@ProNOOB I Eclipseには慣れていません。これはIntelliJでうまくコンパイルされます。 –