Java“?” 用于检查null的运算符-这是什么?(不是三元!)
我正在阅读一篇与slashdot故事相关的文章,发现了这个小窍门:
以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问号”上搜索了各种变体),但一无所获。所以,我的问题是:是否有任何官方文件?我发现C#有一个类似的运算符(“
??”运算符),但是我想获取我正在使用的语言的文档。或者,这仅仅是对我使用的三元运算符的使用从没见过。
谢谢!
编辑:链接到文章:http : //infoworld.com/d/developer-world/12-programming-
mistakes-avoid-292
回答:
最初的想法来自groovy。它是针对Java 7提出的,作为Project
Coin的一部分:https://wiki.openjdk.java.net/display/Coin/2009+Proposals+TOC(猫王和其他Null-
Safe运算符),但尚未被接受。
提出了相关的Elvis运算符?:的x ?: y
简称x != null ? x : y
,特别适用于x是复杂表达式的情况。
以上是 Java“?” 用于检查null的运算符-这是什么?(不是三元!) 的全部内容, 来源链接: utcz.com/qa/399250.html