phpstorm2022是一款非常好用的php開發軟體,軟體支持所有PHP語言功能,提供最優秀的代碼補全、重構、實時錯誤預防等等功能,能夠為程式員提供更為效率的php開發,新版本改進了phpstorm軟體的自動完成功能。還增加了代碼清理工具,可以刪除不必要的部分來優化全類名稱,從而更好的提高用戶的工 ...
轉自:
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()); }