java - 将 ifPresent 与 orElseThrow 结合使用

标签 java option-type

所以我一定错过了一些东西,如果存在可选,我希望执行一个语句 block ,否则抛出异常。

Optional<X> oX;

oX.ifPresent(x -> System.out.println("hellow world") )
.orElseThrow(new RuntimeException("x is null");

如果oX不为空,则打印hello world。 如果oXnull则抛出运行时异常。

最佳答案

使用 Java-8,您可以使用 if...else 作为:

if(oX.ifPresent()) {
    System.out.println("hello world");  // ofcourse get the value and use it as well
} else { 
   throw new RuntimeException("x is null");
}

对于 Java-9 及更高版本,您可以使用 ifPresentOrElse

optional.ifPresentOrElse(s -> System.out.println("hello world"), 
        () -> {throw new RuntimeException("x is null");});

关于java - 将 ifPresent 与 orElseThrow 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56573480/

相关文章:

java - 获取 Java 中预定的非阻塞操作的结果

java - 仅当 Optional 存在时才解包

Swift:guard let 与 if let

string - 我如何将 Option<char> 附加到字符串?

YACC:一个 token 与另一个 token 一次或多次(重复)

java - 为什么这个值返回零?

Java多重继承问题

java - IllegalStateException : getInputStream() is not available. 这是可重入调用吗?

java - 计算指数增长系列中的值之和

Swift - 如何使内部属性可选