在 Scala 中处理以下空值情况的正确方法是什么? getField()
和generateMetric()
方法返回一个字符串。如果它返回一个选项,我可能可以在这里应用模式匹配。
在 Java
我通常这样做:
String metric_1 = null;
String metric_2 = null;
if (myObject.getField() != null) {
metric_1 = myObject.getField();
} else {
metric_2 = generateMetric();
}
最佳答案
可以将 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
则生成指标。
关于java - 当方法不返回选项时如何处理空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59142546/