0
0

JavaでOptionalを使用してみる

Posted at

1. はじめに

  • JavaでOptionalの使い方を理解したい

2. 開発環境

  • Java 21

3. Optionalの生成

  • 3つのファクトリメソッドのいずれかから生成する
メソッド 備考
of(T value) Optionalを生成。値がnullの場合はNullPointException。
ofNullable(T value)) Optionalを生成。値がnullの場合は空のOptional。
empty() 常に空のOptional。
  • NullPointExceptionにならないからといって何も考えずにofNullable()を利用してはいけない
  • 本来NULLになっては行けない場合にof()を使っておけばnullチェックになる
  • 自然にNULLが考えられる場合はofNullable()を使用する

4. Optionalのメソッド

  • Optionalで値を取り出すときは、次の4つのメソッドを使用する
  • 値が存在しなかった場合の振る舞いが違うので、利用する時に注意する
メソッド 値が存在する場合 値が存在しない場合
get() 値を返却する NoSucheElementException
orElse(T other) 値を返却する 指定された値を返却する
ofElseGet(Supper extends T> other) 値を返却する 指定されたsupplierから生成した値を返却する
ofElseThrow(Supper extends X> exceptionSupplier) 値を返却する 指定されたsupplierから生成した例外をThrow
  • get()は値がなかった場合はNoSuchElementExceptionが発生し、NullPointExceptionではない
  • orElse()とorElseGet()は似ているが違っていて、orElseGet()はSupplierから値を生成するため遅延実行にある

5. Optionalのアンチパターン

  • NGのパターン
Person person = null;
if (optional.isPresent()) {
    person = optional.get();
}
  • OKのパターン
    • orElse(), orElseThrow()等の使用を検討する
Person person = optional.ofElse(null);
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0