使用 Java8 Optional 的正確姿式

咱們知道 Java 8 增長了一些頗有用的 API, 其中一個就是 Optional. 若是對它不稍假探索, 只是輕描淡寫的認爲它能夠優雅的解決 NullPointException 的問題, 因而代碼就開始這麼寫了java

Optional<User> user = ...... 
if (user.isPresent()) {
    return user.getOrders();
} else {
    return Collections.emptyList();
}繼承

那麼不得不說咱們的思惟仍然是在原地踏步, 只是本能的認爲它不過是 User 實例的包裝, 這與咱們以前寫成get

User user = .....
if (user != null) {
    return user.getOrders();
} else {
    return Collections.emptyList();
}io

實質上是沒有任何分別. 這就是咱們將要講到的使用好 Java 8 Optional 類型的正確姿式.java8

在里約奧運之時, 新聞一再提起五星紅旗有問題, 但是我怎麼看都看不出來有什麼問題, 後來才道是小星星膜拜中央的姿式不對. 所以咱們千萬也別對本身習覺得常的事情以爲理所固然, 絲絕不會以爲有何不妥, 換句話說也就是當咱們切換到 Java 8 的 Optional 時, 不能繼承性的對待過往 null 時的那種思惟, 應該掌握好新的, 正確的使用 Java 8 Optional 的正確姿式.List

 閱讀全文 >>思維

相關文章
相關標籤/搜索