Optionalについて

目的

JavaのOptiolanについて学んだのでメモ

Optional

用途

nullチェックを簡単に行いたい.

if文を用いてnullチェックを行う場合

String hoge = getHoge(); //このときnullが返ってきたときhogeはnullかもしれない

if(hoge != null) { //ここでnullチェック
  System.out.println(hoge.length());  //hogeがnullじゃないのでlength()が安全に実行できる(null.length()ってならない)
}

Optionalを使用する場合

Optinal<String> hogeOpt = Optional.ofNullable(getHoge()); // hogeをOptinalクラスでラップする
// .ifPresent() : Optionalクラスの中がnullじゃないか確認
// nullならfalse
// 存在するならtrueを返す
hogeOpt.ifPresent(hoge -> System.out.println(hoge.length())); //値が存在するときに実行

まとめ

  • Optional型にすることでコードを見たときにnullが返ってくる可能性を明示することができる
  • if文などのnull判定ではブロックのネストが深くなることがあるがそれを避けることが可能

引用・参考文献

qiita.com