2014-02-24 42 views
0

如果之前詢問過,我很抱歉,因爲這是件小事,但我找不到答案。如何在斯卡拉做到這一點:如何在Scala中初始化最終的可選字段?

class Test{ 
    final Optional<WebView> webView; 

    Test(boolean b){ 
     webView = b ? Optional.of(new WebView()) : Optional.absent(); 
    } 
} 

此摘錄,它利用番石榴的目標,就是要初始化一個非重新分配可選字段。用常規的Java參考和null可以做同樣的事情。

回答

4
class Test(b: Boolean) { 
    val webView: Option[WebView] = if (b) Some(new WebView) else None 
} 

在聲明它的同一個地方初始化val,但你可以使用構造函數的參數吧。

+0

感謝您的快速響應! –

4

在Scala中,這應該是這樣的:

class Test(b: Boolean) { 
    val webView: Option[WebView] = if (b) Some(new WebView()) else None 
}