通过ofNullable创建Optional 对象
Optional<User> optionalUser = Optional.ofNullable(user);
Optiona常用API
orElse 存在即返回, 空则提供默认值
// 存在即返回, 空则提供默认值
optionalUser.orElse(new User());
orElseGet 存在即返回, 空则由函数去产生
// 存在即返回, 空则由函数去产生
optionalUser.orElseGet(() -> anoymos());
orElseThrow 存在即返回, 否则抛出异常
// 存在即返回, 否则抛出异常
optionalUser.orElseThrow(RuntimeException::new);
ifPresent 存在才去做相应的处理
// 存在才去做相应的处理
optionalUser.ifPresent(u -> System.out.println(u.getName()));
map 对 Optional 中的对象执行某种操作,
// map 可以对 Optional 中的对象执行某种操作, 且会返回一个 Optional 对象
optionalUser.map(u -> u.getName()).orElse("anymos");
// map 是可以无限级联操作的
optionalUser.map(u -> u.getName()).map(name -> name.length()).orElse(0);