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):若是有值則將其返回,不然返回指定的值。