关于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");