首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java“?”运算符用于检查null - 它是什么?(不是三元!)

Java“?”运算符用于检查null - 它是什么?(不是三元!)
EN

Stack Overflow用户
提问于 2018-03-27 05:07:09
回答 2查看 0关注 0票数 0

我正在阅读一篇与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#有一个类似的操作符(“??”操作符),但我想获取我正在使用的语言的文档。或者,这仅仅是我使用的三元运算符的用法从未见过。

EN

回答 2

Stack Overflow用户

发布于 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是一个复杂的表达式时特别有用。

票数 0
EN

Stack Overflow用户

发布于 2018-03-27 14:41:24

这种语法在Java中不存在,它也不会被包含在我所知的任何即将发布的版本中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档