Java8のOptionalクラスの使い方

Java8のOptionalクラスの使い方

Java8からjava.util.Optionalクラスが追加されました。

nullチェックをしてくれるクラスです。

Optional.ofNullable

以下のように値をOptional.ofNullableメソッドでラップします。get()で値を取得します。

ofNullableにnullをセットすると、get()部分でNoSuchElementExceptionエラーとなります。

get()を使う場合はisPresent()メソッドを使用してnullでない場合のみget()できるようにします。

ifPresent

nullチェックしているのと同じなので、ifPresentメソッドと言う便利なメソッドもあります。これはnull出ない場合のみ処理を実行してくれます。

orElse

get()で値を取得した場合、nullを考慮しないといけませんでした。

ifPresentを使えばnull出ない場合のみ処理をしてくれるのですが、orElseメソッドですとnullの場合、第一引数で指定された値を返してくれます。

結果は以下のようになります。

ofNullableにnullを指定して、orElseに値を指定するとその値が返ります。

以下、例です。

結果は以下のようになります。

orElseGet

orElse()と同様にorElseGet()を指定して値を取得することができます。

orElseGetは以下のようにSupplier型のラムダ式で渡します。

orElseGetのようにデフォルト値をラムダ式で記述することによりnullだった場合のみ処理されます。これがorElseとorElseGetの違いです。

以下、例です。

結果は以下のようになります。

orElseThrow

値がnullの場合、第一引数で指定した例外をスローします。

if文を消す

OptionalクラスのorElseを使えば今までif文でnullチェックをしていた箇所を削除することが出来ます。

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA