Optional类是JDK8提供的类,用于防止出现空指针异常。本篇旨在对该类进行说明及具体使用方式列举。
一、序言
Option在使用中主要是为了简化传统Java的if else形式对null情况进行判断。既然为了简化代码编写,就必须要提到JDK8的Lambda表达式。Lambda表达式是建立在函数式接口(函数式接口由@FunctionalInterface
注解标识,接口有且仅有一个抽象方法)上的,具有()->{}的形式的函数表达式,有点类似于JavaScript中ES6的箭头函数形式。其使用场景举例如下:
//遍历Map集合
public static void main(String[] args) {
Map<String, String> hashMap = new HashMap<>();
hashMap.put("First", "111");
hashMap.put("Second", "222");
// 使用增强for的方式来遍历hashMap
for (Map.Entry<String, String> entry : hashMap.entrySet()) {
System.out.println(entry.getKey()+":"+entry.getValue());
}
// 使用Lambda表达式的方式来遍历hashMap
hashMap.forEach((s, s2) -> System.out.println(s + ":" + s2));
}
即通过简洁的函数体形式减少了代码量。