Java 8可选的orElse或ElseThrow不一致

标签 java java-8 option-type

如果a是可选的[123]并且b是可选的[空]。

a.orElse(b.orElseThrow(() -> new UnexpectedInternalException(
                    "Error")))

为什么会抛出?

最佳答案

orElse() 是一个方法,在执行该方法之前,会评估其参数。在这种情况下,参数的计算 (b.orElseThrow(() -> new UnexpectedInternalException("Error"))) 会引发异常。

关于Java 8可选的orElse或ElseThrow不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38698211/

相关文章:

java - 错误: missing return value in Java

Java Generics WildCard - 如何在此处将泛型与 Lambda 一起使用?

jpa - Flyway Spring Boot Autowired Beans with JPA Dependency

java - 使用 Java 8 进行字数统计

ios - 可选类型 'Bool' 不能用作 boolean 值;改为测试 '!= nil'

java - 如何初始化 Optional<List<T>>?

java - 在 Java 中计算出 Linux 纪元时间属于哪一天

java - API URL 上的 Google Cloud Endpoints 异常

java - 如何在 Android 上裁剪四点之间的图像

java - 如果Optional.isPresent()则使用可选值作为方法参数