javaInterface返回一个Object或null。
期望:Some(String)或None。
我怎么才能写得比
for {
o <- Option(javaInterface.getValue) if o.isInstanceOf[String]
}
yield o.asInstanceOf[String]简单模式匹配不是option monad解决方案
for {
a <- Option(javaInterface.getValue)
o <- Option(a.getValue) if o.isInstanceOf[String]
}
yield o.asInstanceOf[String]发布于 2015-02-18 21:05:26
您可以使用collect匹配类型:
for {
o <- Option(javaInterface.getValue).collect({case s: String => s})
} yield o发布于 2015-02-19 00:18:17
相当于collect,以filter为例,如下所示:
Option(javaInterface.getValue).filter { case s: String => s }https://stackoverflow.com/questions/28583656
复制相似问题