Optional类中map和flatMap的区别
下文笔者讲述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());
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


