1.实例
Optional.empty():// 创建空的Optional
Optional.of(object); // object不允许为null
Optional.ofNullable(object); // object允许为null
2. 方法
get()
// 获取optional中的对象,当optional 容器为空时报错
isPresent()
// 判断optional是否为空,为空返回false,否则返回true
ifPresent(Consumer c)
// optional不为空,则将optional中的对象传给Comsumer函数
orElse(T other)
// optional为空默认返回 other
orElseGet(Supplier other)
// optional为空默认使用Supplier函数生成默认值other
orElseThrow(Supplier exception)
// optional为空默认抛出异常
filter(Predicate p)
// 如果p的结果为true,则返回原本的optional,否则返回空的optional
map(Function<T, U> mapper)
// 映射对象
flatMap(Function<T, Optional< U>> mapper)
// 将对象映射成另外一个optional
3.使用
// 将对象放入Optional
Optional studentOptional = Optional.ofNullable(student);
// 是否为空
studentOptional.isPresent();
// 为空抛异常
Student student = studentOptional.orElseThrow(Exception::new)
Student student = studentOptional.orElseThrow(() -> new Exception(“error message”));
// 为空默认为空字符串
String name = studentOptional.map(Student::getName).orElse("");