包装可能为Null的对象
String a = null;
// ofNullable(a):对a对象进行包装,orElseGet:设置默认值
String optional = Optional.ofNullable(a).orElseGet(() -> "333");
System.out.println(optional); // 输出 333
设置默认值有两个方法:orElse() 和 orElseGet(),但是前者不管包装的对象是否为Null,里面调用的方法都会被执行;orElseGet()如果被包装的对象不为Null,则不会执行该方法,相对性能更好;
过滤值
String password = "12345";
Optional<String> opt = Optional.ofNullable(password);
System.out.println(opt.filter(pwd -> pwd.length() > 6).orElseGet(() ->"")); // 输出 空串