为什么可以在Optional.of()上调用.orElse()?

问题描述 投票:-1回答:1

我很好奇为什么有可能这样做(至少在Java 8上如此:]

Optional.of(null).orElse();

Optional.of(null)基本上是保证为空的指针。可以在其上调用.orElse()给笨拙的开发人员带来意想不到的漏洞。我一直在四处看看是否有任何理由。也许有些情况应该解决这个问题?

java java-8 optional
1个回答
1
投票

您可以这样做,原因与您可以写((String) null).length()相同。 Java编译器对某些类型的安全(例如类型安全)具有静态检查器,但不检查或拒绝可证明抛出NullPointerException的代码。如果确实如此,则也将不允许使用代码throw new NullPointerException();

© www.soinside.com 2019 - 2024. All rights reserved.