Java8 Optional
程序员文章站
2022-06-06 23:38:33
...
// 创建实例
Optional<Employee> op1 = Optional.of(new Employee());
// 创建空的Optional实例
Optional<Employee> op2 = Optional.empty();
// 如果参数不为null则创建实例,否则创建空实例
Optional<Employee> op3 = Optional.ofNullable(null);
// 判断是否包含值:isPresent()
if (op3.isPresent()) {
System.out.println(op3.get());
}
// 如果包含就返回,否则返回参数:orElse(T t)
op3.orElse(new Employee());
// 如果包含就返回,否则返回参数获取的值:orElseGet(Supplier s)
op3.orElseGet(() -> new Employee());
op.map & op.flatMap
// map(Function f):
// 如果有值就使用Function处理并返回处理后的Optional
// 否则返回Optional.empty()
Optional<Employee> op = Optional.ofNullable(
new Employee("张三", 18, 8888.8, Employee.Status.FREE));
// 有Employee,进行处理,取出名字
Optional<String> str = op.map((e) -> e.getName());
System.out.println(str.orElse("null"));
// flatMap:与map类似,只不过要求返回Optional
Optional<String> str2 = op.flatMap((e) -> Optional.of(e.getName()));
System.out.println(str2.orElse("null"));
转载于:https://www.jianshu.com/p/c0657380d7c7
上一篇: dva如何去掉hash
下一篇: 【Java8】Optional