是否有任何类似于Groovy safe navigation operator的模式?这是一个空值确实有意义并且允许抛出NullPointerException的地方是错误的。
除了检查null之外,还有哪些其他选项? String类提供static method来取消引用可能为null的值,但除Objects类之外似乎没有太多使用此模式。谷歌的Guava项目确实有一个Optional类,但这需要调用者提供一个默认值,与安全导航操作符相比看起来太多了,并且当你只想让它在大多数时候都为空时。看起来像这样:
com.google.common.base.Optional.of(fooBar).
or(org.mockito.Mockito.mock(FooBar.class));
Scala中的null object pattern或option monad不是我想要的,或者是将这些运算符添加到Java的未来版本中的建议,我正在寻找可以在Java中应用的模式现在
答案 0 :(得分:3)
不。只是一个很好的老板,如果 - 其他。如果感觉更像图案,您可以使用三元运算符。你可以使用匿名类和Callable
等方式来制作一些具有模仿性的东西,但它在Java中会非常非常难看。
答案 1 :(得分:2)
“安全”导航操作符在我看来是一个非常糟糕的主意,因为它可以抑制异常并允许开发人员使用错误代码。
基本上只有三种情况需要考虑: