JavaEEブログなはずなのに11月はcakeのことばかり書いていて、Javaのことすら書いていないですね(汗)
今日はOptionalについて書きます。
いまいち使い方がわからなかったんですが、自分なりの解釈などができてきたので、メモしておきます。
Contents
Optionalとは?
Javaを使い始めてからというもの常に悩まされるのがNullPointerExceptionでしょう。
私の場合、PHPが最初の言語であり、nullでもプログラムが止まることはなかったので、Javaに移ってからはnullチェックをせずに落ちまくりました(汗)
Optionalとはそのnullチェックのためのクラスです。
特徴としては下記のような特徴があります。
- nullになる可能性があることをコード上に明示できるため、値チェックを忘れなくなる。
- 値が存在するときと、存在しない時の処理を分けやすくなる。
ソース
一般的には下記のように定義します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
//値が存在しているとき Optional<String> exists = Optional.of("123"); //値がない空の時 Optional<String> empty = Optional.empty(); //nullかもしれない値が入るとき Optional<String> str = Optional.ofNullable(value); //値が存在しているときの処理 if( str.isPresent()){ } //ラムダ式を用いた書き方 str.ifPresent(s->{ System.out.println(s); }); |