class Test {
var activated: Boolean = false
}
def maybeTest(): Test = {
if(...) {
val res = new Test
if(...) res.activated = true
} else null
}
我有很多if
結構,像這樣的:
val myobject = maybeTest()
if(myobject != null && myobject.activated) {
// Do something that does not care about the object
}
我想凝那麼一點點。有一個很好的方法來定義/寫這樣的事情,以避免一個NullPointerException:
if(maybeTest() &&> (_.activated)) {
...
}
什麼是Scala實現這一目標的最佳途徑?
爲什麼不使用[scala.Option(http://www.scala-lang.org/api/current/index.html#scala.Option)? – 4lex1v 2013-04-25 09:14:23
我喜歡scala選項,但我在Android上開發,所以我創建的對象越少越好。 – 2013-04-25 09:18:24
在maybeTest()中激活的示例調用可能會拋出一個NPE,如果maybeTest()會導致Null,那麼您首先必須檢查您的maybeTest的結果,然後調用激活 – 4lex1v 2013-04-25 09:47:46