2017-01-26 5 views
0

実際の電子メールが "空"のときにダミーメールを生成する必要があるScalaコードを修正する必要があります。それが空の場合、 "@ dummy-email.com":空のときにスカラー文字列を設定する

は、これまでのところ、それは次のようになります。今

val maybeEmail = (response.json \ "email").asOpt[String].map(_.toLowerCase) 

User(maybeEmail, ...) // User(email: Option[String], ....) 

、私はに "maybeEmail" をリセットしたいです。

これは非常に些細なようですが、私はすでにいくつかのショットがあり、動作させることができませんでした。 は、これまでのところ私は(働いていなかった)のようなものをしようとしていた。

maybeEmail.getOrElse[String](someId.concat("@dummy-email.com")) 

だから、この上で私をサポートしてください。ありがとう。

+1

「作業していない」とはどういう意味ですか? (具体的に:例外/コンパイルエラー/望ましくない結果を表示してください) –

+0

。私は複数のソリューションを試してみましたが、すべて例外が発生しました:[エラー] found:java.io.Serializable [エラー]必須:オプション[文字列]または類似 – user3735572

+0

playframeworkとplayjsonを使用していますか? –

答えて

0

私は本当にあなたの質問を理解していませんが、この小さな答えを試してみましょう、それはあなたを助けるでしょう。

val optMail2 = Some("[email protected]") 
val mail2 = optMail2 orElse Some("[email protected]") 

:あなたの代わりに、文字列の結果でオプションをしたい場合は

val optMail = Some("[email protected]") 
val mail = optMail getOrElse "[email protected]" 

:あなたは、デフォルト値を持つ結果として文字列を、必要な場合

は、あなたがこのような何かを行うことができますあなたが望むのは第2のケースだと思われます。あなたのコードは次のようになります:

val maybeEmail = (response.json \ "email").asOpt[String].map(_.toLowerCase) orElse Some(someId.concat("@dummy-email.com")) 
User(maybeEmail, ...) // User(email: Option[String], ....) 
+0

これは私にとって非常に役に立ちました!乾杯! – user3735572

関連する問題