轉自:
http://www.java265.com/JavaCourse/202206/3666.html
Optional 類簡介:
Java8 新增了非常多的特性,而Optional 類就是其中一個新增的類
Optional 類是一個可以為null的容器物件,如果值存在則isPresent()方法會回傳true,呼叫get()方法會回傳該物件,
Optional 是個容器:它可以保存型別T的值,或者僅僅保存null,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/509302.html
標籤:其他
上一篇:Dubbo架構設計及入門案例
