关于Java Optional的使用方法

Optional 的声明方式

为了使用Optional,需要将类型包装起来使用。

Optional<String> opt1;

即使在自己创建的类中也是一样的

public class testClass
{
    private String no;
    private BigDecimal val;
}
OPtional<testClass> opt2;

用法

要将值放入Optional类型中,可以使用optional.of或optional.ofNullable。

Optional<String> opt1 = Optional.of("test");

然而,可选程序optional.of会在参数为null的情况下引发异常,因此要小心。

Optional<String> opt1 = Optional.of(null);

因此,使用 optional.ofNullable。

Optional<String> opt1 = Optional.ofNullable("test");
Optional<String> opt2 = Optional.ofNullable(null);

testClass test = new testClass();
Optional<String> opt3 = Optional.ofNullable(test);

获取值的方法 (Obtaining the value method)

为了提取值,可以使用以下方法:
get :如果为null,则引发异常
orElse :如果不为null,则返回变量值,如果为null,则返回orElse的参数
orElseGet :如果不为null,则返回变量值,如果为null,则返回suppelier的结果

String val1 = opt1.get();
String val2 = opt1.orElse("")

当从自定义类中获取值时,可以使用以下方法来获取字段。
字典

String val1 = opt3.map(testClass::getNo).orElse("1");
String val2 = opt3.map(v -> v.getNo()).orElse("2");