“一个解决NullPointerException的好方法。”
1. Optional.of(T value)
该方法通过一个非null的value来构造一个 Optional,返回的 Optional 包含了 value 这个值。
对于该方法,传入的参数一定不能为 null,否则便会抛出 NullPointerException。
2. Optional.ofNullable(T value)
该方法和 of 方法的区别在于,传入的参数可以为 null。
该方法会判断传入的参数是否为 null,如果为 null 的话,返回的就是 Optional.empty()。
3. Optional.empty()
该方法用来构造一个空的 Optional,即该 Optional 中不包含值
其实底层实现还是 如果 Optional 中的 value 为 null ,则该 Optional 为不包含值的状态,然后在 API 层面将 Optional 表现的不能包含 null 值,使得 Optional 只存在包含值和不包含值两种状态。
4. Optional.ifPresent()
如果 Optional 中有值,则对该值调用 consumer.accept,否则什么也不做。
user.ifPresent(u -> System.out.println("Username is: " + u.getUsername()));
5. Optional.orElse
如果 Optional 中有值则将其返回,否则返回 orElse 方法传入的参数。