網頁

2020/6/18

Java OptionalInt 使用時機

讀了「Effective Java 3e - Item 55: Return optionals judiciously」後知道不要用Optional去包primitive type的boxed type類別,也就是不要用Optional<Integer>,應改用OptionalInt

但想不到OptionalInt的使用時機,目前只想到資料庫查詢數值欄位時可能返回null的情況。

public OptionalInt getCustomerOrderAmount(Long customerId) {
    // ... some query database logic

    Integer amount = resultSet.getInt("AMOUNT"); // AMOUNT column is nullable
    if (amount == null) {
        return OptionalInt.empty();
    } else {
        return OptionalInt.of(amount);
    }
}

沒有留言:

張貼留言