java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java orElse和orElseGet区别

java中orElse和orElseGet方法区别小结

作者:翟凤玺

这篇文章主要给大家介绍了关于java中orElse和orElseGet方法区别的相关资料,两者之间的区别细微,但是却在某些场景下显的很重要,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

orElse 和 orElseGet 是 Optional 类的两个方法,用于处理可能为空的值。

orElse()

当optional值不存在时,调用orElse()返回orElse()的参数,如果optional的值存在时返回optional的值

orElseGet()

当optional值不存在时,调用orElseGet()中接口调用的返回值,如果optional的值存在时返回optional的值,例子如下:

import java.util.Optional;

public class Main {
    public static void main(String[] args){
        String nullValue = null;
        String optional = Optional.ofNullable(nullValue).orElse("Su");
        System.out.println(optional);
        String optionalGet = Optional.ofNullable(nullValue).orElseGet(() -> "Xiao");
        System.out.println(optionalGet);
        String nonNullOptional = Optional.ofNullable("Susan").orElse("Su");
        System.out.println(nonNullOptional);
        String nonNullOptionalGet = Optional.ofNullable("Molly").orElseGet(() -> "Xiao");
        System.out.println(nonNullOptionalGet);
    }
}

结果:

Su
Xiao
Susan
Molly

区别

Optional<String> value = Optional.ofNullable(someValue); 
String result = value.orElse("default");
Optional<String> value = Optional.ofNullable(someValue); 
String result = value.orElseGet(() -> computeDefaultValue());

总结

到此这篇关于java中orElse和orElseGet方法区别的文章就介绍到这了,更多相关java orElse和orElseGet区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文