我遇到一种情况,其中返回可选值的服务仅用于条件,并且如果返回成功则返回异常,因此我需要使用lambda表达式。
Optional<MyClass> val = service.getMyclass();
if(val.isPresent) {
//some operation
}else{
//throw exception
}
答案 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的链接