1. 程式人生 > >使用 Java8 Optional 的正確姿勢

使用 Java8 Optional 的正確姿勢

Optional

我們知道 Java 8 增加了一些很有用的 API, 其中一個就是 Optional. 如果對它不稍假探索, 只是輕描淡寫的認為它可以優雅的解決 NullPointException 的問題, 於是代碼就開始這麽寫了

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

那麽不得不說我們的思維仍然是在原地踏步, 只是本能的認為它不過是 User 實例的包裝, 這與我們之前寫成

User user = .....

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

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

在裏約奧運之時, 新聞一再提起五星紅旗有問題, 可是我怎麽看都看不出來有什麽問題, 後來才道是小星星膜拜中央的姿勢不對. 因此我們千萬也別對自己習以為常的事情覺得理所當然, 絲毫不會覺得有何不妥, 換句話說也就是當我們切換到 Java 8 的 Optional 時, 不能繼承性的對待過往 null 時的那種思維, 應該掌握好新的, 正確的使用 Java 8 Optional 的正確姿勢. 閱讀全文 >>


使用 Java8 Optional 的正確姿勢