Java的"?."运算符用于检查null - 这是什么?(不是三元运算符!)

26 浏览
0 Comments

Java的"?."运算符用于检查null - 这是什么?(不是三元运算符!)

我正在阅读一篇InfoWorld文章(链接到Wayback机器,因为这段摘录已被删除),然后发现了这个小提示:

以Java的最新版本为例,它试图通过提供简写语法来简化空指针检查操作。只需在每个方法调用后加上一个问号,就会自动包含对空指针的检查,取代了繁琐的if-then语句嵌套,例如:

public String getPostcode(Person person) {
String ans= null;
if (person != null) {
Name nm= person.getName();
if (nm!= null) {
ans= nm.getPostcode();
}
}
return ans
} 

使用如下方式简化:

public String getFirstName(Person person) {
return person?.getName()?.getGivenName();
} 

我在互联网上搜寻过(好吧,我至少花了15分钟搜索了各种"java question mark"的变种),但没有找到相关资料。所以我的问题是:是否有任何官方文档关于这个?我发现C#也有类似的操作符("??"操作符),但我想找到我正在使用的语言的文档。或者,这只是我以前从未见过的三元运算符的用法。

谢谢!

0