咱們知道 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
閱讀全文 >>思維