什么是Optional类?
Optional 类(java.util.Optional) 是一个容器类,代表一个值存在或不存在,原来用 null 表示一个值不存在,现在 Optional 可以更好的表达这个概念。并且可以避免空指针异常。
Optional类常用方法:
Optional.of(T t) : 创建一个 Optional 实例。
Optional.empty() : 创建一个空的 Optional 实例。
Optional.ofNullable(T t):若 t 不为 null,创建 Optional 实例,否则创建空实例。
isPresent() : 判断是否包含值。
orElse(T t) : 如果调用对象包含值,返回该值,否则返回t。
orElseGet(Supplier s) :如果调用对象包含值,返回该值,否则返回 s 获取的值。
map(Function f): 如果有值对其处理,并返回处理后的Optional,否则返回 Optional.empty()。
flatMap(Function mapper):与 map 类似,要求返回值必须是Optional。
Optional类示例
1.创建Optional类
(1)使用empty()方法创建一个空的Optional对象:
Optional<String> empty = Optional.empty();
简化
声明变量引用时已经添加了泛型就不需要在新建对象时给对象标识泛型,
栈帧中局部变量表中的变量引用指向堆中的对象时,
自动判断对象中元素是否符合声明变量的中的指定的泛型要求;
不符合,就报错;
Explicit type argument Integer,String can be replaced with <> less... (Ctrl+F1)
This inspection(检查) reports all new expressions with type arguments which can be replaced with diamond type <>
Such <> syntax is not supported under Java 1.6 or earlier JVMs.