如何在Scala中初始化最终的可选字段?

时间:2014-02-24 13:29:23

标签: scala design-patterns optional

如果之前有人问过,我很抱歉,因为这是微不足道的,但我找不到答案。我如何在Scala中执行此操作:

class Test{
    final Optional<WebView> webView;

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

此摘录的目标是使用Guava,初始化一个不可重新分配的可选字段。使用常规Java引用和null可以做同样的事情。

2 个答案:

答案 0 :(得分:4)

在Scala中,看起来像这样:

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

答案 1 :(得分:4)

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

必须在声明它的同一个地方初始化val,但你可以使用构造函数参数。