此问题在此处已有答案:
Optional of nullable on something giving NullPointerException(1个答案)
What is a NullPointerException, and how do I fix it?(12个答案)
8小时前关门了。
我想使用Java11的Optional来保护自己免受可怕的空指针异常的影响。我写了一个基本的测试来检查我对它们如何工作的理解。
@Test
public void optionalsWorkingAsExpected() {
String x = null;
var y = Optional.ofNullable(x.toString().toLowerCase()).orElse(null);
assertThat(y).isNull();
}
但是,此测试失败,出现另一个空指针异常
Cannot invoke "String.toString()" because "x" is null
对于上下文,我希望能够使用这样的函数链:
myClass.getMyData().transformData().getName()
这些函数调用中的任何一个都可能导致为null,并且它们被链接在一起,我并不关心链中哪个为null,但是如果它们中的任何一个为null,我想把null返回给我的变量,就像这样
String name = Optional.ofNullable(myClass.getMyData.transformMyData.getName()).orElse(null);
有什么建议吗?
2条答案
按热度按时间jvlzgdj91#
我认为快乐歌曲的评论和解决方案的链接是正确的方向。你会希望像这样的东西通过你的测试。
weylhg0b2#
谢谢@happy-song和@kparkinson。Map帮助我找到了正确的方向。对于上下文,这些Map可以像其他Map一样链接起来,如果你想调用