在Scala中使用空值处理以下情况的正确方法是什么? getField()
和generateMetric()
方法返回一个字符串。如果返回选项,我可能会在此处应用模式匹配。
在Java
中,我通常是这样的:
String metric_1 = null;
String metric_2 = null;
if (myObject.getField() != null) {
metric_1 = myObject.getField();
} else {
metric_2 = generateMetric();
}
答案 0 :(得分:5)
您可以将null
包裹在Option
中的值,例如:
val isNull = null
val isNotNull = "hello"
println(Option(isNull)) // None
println(Option(isNotNull)) // Some(hello)
查看这篇文章:NO NULL VALUES
您的示例如下:
val metric =
Option(myObject.getField()).getOrElse(generateMetric())
null
的方法。null
,则生成度量。