Optional 处理空指针异常

通过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);
原文地址:https://www.cnblogs.com/xiaodou00/p/14751515.html