Ami*_*dav 6 java optional java-8
如果我正在调用函数orElse,即使该函数Optional不为空,也会执行该函数.有没有办法限制函数的执行只有当它Optional是空的?
Optional.ofNullable(someValue).orElse(someFunction());
Run Code Online (Sandbox Code Playgroud)
Era*_*ran 13
someFunction()因为它是传递给方法的参数而被执行,并且在执行方法之前评估传递给方法的参数.为了避免执行,您应该someFunction()在Supplier实例中传递.
使用orElseGet而不是orElse:
Optional.ofNullable(someValue).orElseGet(SomeClass::someFunction);
Run Code Online (Sandbox Code Playgroud)
要么
Optional.ofNullable(someValue).orElseGet(()->someFunction());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
366 次 |
| 最近记录: |