Java最佳实践何时使用Lambda Exprection

时间:2019-03-27 09:55:57

标签: java

我遇到一种情况,其中返回可选值的服务仅用于条件,并且如果返回成功则返回异常,因此我需要使用lambda表达式。

Optional<MyClass> val = service.getMyclass();
if(val.isPresent) {
 //some operation
}else{
   //throw exception
}

2 个答案:

答案 0 :(得分:1)

尝试下面给出的代码。

Optional<MyClass> var = service.getMyclass();
MyClass val = var.orElseThrow(RuntimeException::new);

答案 1 :(得分:0)

一旦value为null引发异常,则可以使用orElseThrow,您可以编写更多代码而无需再次检查

Optional<MyClass> val = service.getMyclass();
MyClass myValue = val.orElseThrow(Exception::new);  //throw exception
//some operation

如果您只想在值存在时进行处理,则可以使用

val.ifPresent(v- > //some operation);

您可以访问deatils about java 8 optional的链接