Optional类
若是你发现看不懂,那说明你java8的stream没真正理解,能够看个人另外一篇博客:http://www.javashuo.com/article/p-nswjqwms-kw.htmljava
介绍
主要的几个方法:app
- 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):若是有值则将其返回,不然返回指定的值。