轉自:
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.uj5u.com/houduan/500056.html
標籤:Java
上一篇:java中集合的簡介說明
