Optional类
如果你发现看不懂,那说明你java8的stream没真正理解,可以看我的另一篇博客:https://my.oschina.net/u/3244997/blog/3014977
介绍
主要的几个方法:
- of(T value):通过工厂方法创建Optional实例,如果传入的参数为null,否则立即抛出NullPointerException。
- ofNullable(T value):为指定的值创建一个Optional, 如果指定的值为null,则返回一个可为空的Optional。
- get():如果值不为空则将其返回,否则;立即抛出NoSuchElementException。
- isPresent():如果值不为空则返回true,否则返回false。
- ifPresent(Consumer consumer): 如果值不为空,则为其调用函数式接口consumer ,否则不做处理。如:
//consumer有一个参数,无返回值。
username.ifPresent((valu) -> {
System.out.println("The length of the value is: " + value.length());
});
- map(Function mapper):如果值不为空,则为其调用函数式接口Function, 并且拿function的返回值作为Optional的返回值,否则返回一个值为空的Optional。如:
//Function有一个参数,一个返回值
Optional<String> upperName = username.map((value) -> value.toUpperCase());
- orElse(T value):如果有值则将其返回,否则返回指定的值。