-1

次のコードは機能しません: FileSystems.getDefault.getPath は java.nio パッケージからのものです。

アップデート:

メソッド createCalculation は次のとおりです。

注: MyLocation は、MyMessage を拡張するケース クラスです。

def creatCalculation(myPlace: MyLocation): MyMessage = {
    if (some test) {
       //--- some code
    } else
       MyError("My Calculation already done")

        MyAck //returning the case object MyAck which is of type MyMessage
  }

// Req は次のクラスです: net.liftweb.http.Req

val someVal: PartialFunction[Req, () => Box[LiftResponse]] {

case "create" :: Nil JsonPostAndApproval s =>
          postResponse(s, (j: JValue, p: Permissions, r: Req) => {
        createCalculation(fromJValue[MyLocation](j) = {
          case "MyAck" => {
             val myCalculator: Calculator = new Calculator(FileSystems.getDefault.getPath(fromJsonVal[MyLocation](s._1).path))
             val resultsMap = myCalculator.foreach( (p) => Map[String,  Int])
                 for( (myKey, myValue) <- resultsMap) {
                    printf("key: %s, value:  %s\n", myKey, myValue)
                 }
          }
        })
      } ) ("Failed to calculate")

 }

コンパイラは次のように文句を言います。

[error] C:\Users\lulu\ExampleHandler.scala:129: missing arguments for
method fromJValue in package json;
[error] follow this method with `_' if you want to treat it as a partially applied function
[error]         createCalculation(fromJsonVal[MyLocation](j) = {
[error]                                  ^

これは fromJsonVal のメソッド定義です

/**
   * Routine to convert JValue to native type
   *
   * @param in JValue to convert
   * @tparam T native type to extract
   * @return extracted native type
   */
  def fromJsonVal[T: Manifest](in: JValue): T = in.extract[T]

JValue は net.liftweb/json からのもので、次のとおりです。 封印された抽象クラス JValue() は、java.lang.Object を net.liftweb.json.Diff.Diffable { <> } で拡張します。

更新: コンパイラは、エラーがこのコード行にあると報告しています

このコンパイル エラーをどのように修正すればよいと思いますか?

   createCalculation(fromJValue[MyLocation](j) = {
4

1 に答える 1

0

全体像がなければ、エラーは単に出力をメソッドに割り当てようとしていて、括弧が欠落しているためだと思います。全体像がなければ、次のようなものを探していると思います。

createCalculation(fromJValue[MyLocation](j)) match {
  case "MyAck"....

後の二重括弧に注意してくださいj

于 2015-04-17T01:57:49.997 に答える