Javaコードの一部をscalaに変換していますが、特定のヘッダーを取得して文字列として返すことができるようにしたいと考えています。
Javaで私は持っています:
return request().getHeader("myHeader")
私はscalaで同じことを達成することができませんでした。どんな助けでも大歓迎です!ありがとう!
Javaコードの一部をscalaに変換していますが、特定のヘッダーを取得して文字列として返すことができるようにしたいと考えています。
Javaで私は持っています:
return request().getHeader("myHeader")
私はscalaで同じことを達成することができませんでした。どんな助けでも大歓迎です!ありがとう!
あなたは書くことができます:
request.get("myHeader").orNull
Javaラインと本質的に同じものが必要な場合。しかし、あなたはしません!
request.get("myHeader")
を返しますOption[String]
。これは、nullポインター例外をスローしないコードを作成するようにScalaが推奨する方法です。
Option
はさまざまな方法で処理できます。たとえば、デフォルト値を指定する場合は、次のようにします。
val h: String = request.get("myHeader").getOrElse("")
または、ヘッダーが存在する場合は、ヘッダーを使用して何かを実行する場合:
request.foreach { h: String => doSomething(h) }
あるいは単に:
request foreach doSomething
その他の可能性については、このチートシートを参照してください。
受け入れられた答えは、playframework 2.2のscalaでは機能しません:
request.get("myHeader").getOrElse("")
それは私に以下のエラーを与えます:
値getはplay.api.mvc.Request[play.api.mvc.AnyContent]のメンバーではありません
以下を使用してください
request.headers.get("myHeader").getOrElse("")