我正在阅读一篇与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#有一个类似的操作符(“??”操作符),但我想获取我正在使用的语言的文档。或者,这仅仅是我使用的三元运算符的用法从未见过。
发布于 2018-03-27 13:58:29
最初的想法来自groovy。它被提议将Java 7作为Project Coin的一部分:https://wiki.openjdk.java.net/display/Coin/2009+Proposals+TOC(Elvis和其他Null-Safe Operators),但尚未被接受。
相关的Elvis算子?:被提出用来x ?: y
缩写x != null ? x : y
,当x是一个复杂的表达式时特别有用。
发布于 2018-03-27 14:41:24
这种语法在Java中不存在,它也不会被包含在我所知的任何即将发布的版本中。
https://stackoverflow.com/questions/-100007809
复制相似问题