Java 8 Elvis运算符中的空检查?

use*_*362 10 java nullpointerexception java-8

问题:是否有计划用于任何未来Java版本的Elvis运算符的实现?或者是否有任何库将其带入Java?

我读过这个

它是为Java SE 7提出的,但没有进入该版本

http://www.oracle.com/technetwork/articles/java/java8-optional-2175753.html

我知道Java 8允许这样做

String name = computer.flatMap(Computer::getSoundcard)
                          .flatMap(Soundcard::getUSB)
                          .map(USB::getVersion)
                          .orElse("UNKNOWN");
Run Code Online (Sandbox Code Playgroud)

但是我的口味太过分了.因此,如果有人能指出我将任何项目/库,将Groovy喜欢/ C#类似的语法带到Java的Null Checks,将不胜感激.

编辑:通过Elvis运算符我的意思是:

String version = computer?.getSoundcard()?.getUSB()?.getVersion();
Run Code Online (Sandbox Code Playgroud)

或类似的

Bri*_*etz 13

没有.目前或将来没有计划重新考虑Java中的零安全运营商.

  • 这很难过,但谢谢你的澄清 (8认同)
  • @SrujanBarai 不。C# 语法再次获胜。 (2认同)
  • 另请参阅:[为什么空安全运算符(例如“Elvis 运算符”)作为 Java 的“Project Coin”的一部分被拒绝?](https://softwareengineering.stackexchange.com/q/359414/81973) (2认同)