1

パラメータにシンボルを使用した非常にエレガントなスプレールーティングを使用しています。ただし、いくつかのレガシー コードを扱っており、Java 列挙型を使用する必要があります。scalaシンボルをJava enumに変換するエレガントな方法はありますか?

したがって、目的のコードは次のようになります。

      post {
        parameters(('adId.as[String], 'propertyType.as[TypNe])).as(Import) { imp:Import =>
          complete {
            adImporterService ! imp
            StatusCodes.Accepted
          }
        }

ここで、TypNem は Java 列挙型で、Import は scala ケース クラスです。それ以外の

      post {
        parameters(('adId.as[String], 'propertyType.as[String])) { (aId,pType) =>
          complete {
            adImporterService ! Import(aId,TypNe.valueOf(pType.toUpperCase()))
            StatusCodes.Accepted
          }
        }
      }
4

2 に答える 2

1

暗黙の宣言を使用して読みやすさを向上させることができます。

implicit def strToTypeNe = TypNe.valueOf(pType.toUpperCase())
于 2015-04-12T19:03:19.503 に答える