Ale*_*her 8 casting scala scalatra
在这个应用程序中,我收到此错误:
scala.Some cannot be cast to java.lang.String
Run Code Online (Sandbox Code Playgroud)
在尝试这个时:
x.email.asInstanceOf[String]
Run Code Online (Sandbox Code Playgroud)
x.email是一个选项[String]
编辑:我知道我在这里处理不同的类型,我只是想知道是否有一个更简洁的方法什么都不做,然后一个
match { case....}
Run Code Online (Sandbox Code Playgroud)
序列.因为我将x.email转换为String以用于JSON目的,所以JSON对象将处理空字段,并且我没有明确地处理它.很抱歉不清楚!!
Ric*_*tze 10
嗯,这是从错误和类型清楚你说x.email是不是String?
首先,决定你想要处理的方式None(某种类型的有效选项Option[String]).然后,您有许多选项,包括但不限于:
x.email match {
case None => ...
case Some(value) => println(value) // value is of type String
}
Run Code Online (Sandbox Code Playgroud)
或者,看看get和getOrElse方法class Option.
如果要将具有可能null值的String的选项"降级" ,请使用
x.email.orNull // calls getOrElse(null)
Run Code Online (Sandbox Code Playgroud)
最后,如果你只是不关心这个None案例(并且想要忽略它),那么只需使用一个简单的"for comprehension",它将"跳过" None案例中的正文:
for (value <- x.email) {
// value is of type String
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15520 次 |
| 最近记录: |