我很好奇为什么有可能这样做(至少在Java 8上如此:]
Optional.of(null).orElse();
Optional.of(null)
基本上是保证为空的指针。可以在其上调用.orElse()
给笨拙的开发人员带来意想不到的漏洞。我一直在四处看看是否有任何理由。也许有些情况应该解决这个问题?
您可以这样做,原因与您可以写((String) null).length()
相同。 Java编译器对某些类型的安全(例如类型安全)具有静态检查器,但不检查或拒绝可证明抛出NullPointerException
的代码。如果确实如此,则也将不允许使用代码throw new NullPointerException();
。