转自:
http://www.java265.com/JavaCourse/202206/3666.html
Optional是一个容器对象,
可以包含也可以不包含非null值。
Optional在Java 8中引入,目的是解决 NullPointerExceptions的问题。
本质上,Optional是一个包装器类,其中包含对其他对象的引用。
在这种情况下,对象只是指向内存位置的指针,并且也可以指向任何内容。
从其它角度看,Optional提供一种类型级解决方案来表示可选值而不是空引用
下文笔者讲述Optional类中map和flatMap的区别说明,如下所示
map和flatMap的区别 map方法:接受一个映射函数参数,返回一个被Optional包装的结果。若结果为空,则返回 空Optional flatMap方法:接受一个返回值为Optional的映射函数参数,该返回值亦是flatMap方法的返回值 若结果为空,则返回 空Optional。
例
public class User { String name; Integer age; public User(){ } public User(String name, Integer age){ this.name = name; this.age = age; } ... // getter setter } @Test void mapOptionalTest(){ User user = new User(\"java265.com\",88); Optional<Optional<String>> optionalOptional = Optional.ofNullable(user).map(this::getName); Optional<String> mapOptional = Optional.ofNullable(user).map(s -> s.getName()); Optional<String> flatOptional = Optional.ofNullable(user).flatMap(this::getName); } private Optional<String> getName(User user){ return Optional.ofNullable(user).map(s -> s.getName()); }
来源:https://www.cnblogs.com/java265/p/16461272.html
本站部分图文来源于网络,如有侵权请联系删除。