java-Optional,stream
Optional
Optional<Object> emptyOpt = Optional.empty();
emptyOpt 变量的值会导致 NoSuchElementException。使用 of() 和 ofNullable() 方法创建包含值的 Optional。两个方法的不同之处在于如果你把 null 值作为参数传递进去,of() 方法会抛出 NullPointerException;
所以:对象不为 null 的时候使用 of()。如果对象即可能是 null 也可能是非 null,你就应该使用 ofNullable() 方法:
Optional<People> opt = Optional.of(people);
Optional<People> opt = Optional.ofNullable(people);
访问 Optional 对象值: get() :在值为 null 的时候抛出异常。
String name = "name"; Optional<String> opt = Optional.ofNullable(name); system.out.printIn(opt.get());
转换值
map(): 对值应用(调用)作为参数的函数,然后将返回的值包装在 Optional 中。
People people= new People ("djt@email.com"); String email = Optional.ofNullable(user) .map(u -> u.getEmail()).orElse("default@email.com");