0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【備忘録】JavaのOptionalについて

Posted at

#はじめに
Optionalについて自分なりの理解を備忘録として執筆します。

#Optionalとは
値をラップしてその値がnullである可能性を表現するクラス。
NullPointerExceptionを防ぐことができる。

#Optionalを使う理由
nullである可能性のあるメソッドを呼ぶ場合、事前にnullかどうかのチェックを実装する必要がある。
しかし、実装を忘れてしまう可能性がある。
実装を忘れることを防止するためにOptionalが利用される。

#ソースコードで確認
ofNullableメソッドを利用して、Optionalが型のオブジェクトを作成する。
If文の中でisPresent関数を利用して、値が存在しているときのみlengthメソッドを実行している。
この時、変数strの中身はnullであるため実行してもコンソール上にはなにも表示されない。

java
		String str=null;
		Optional<String>strOpt=Optional.ofNullable(str);

		if(strOpt.isPresent()) {
			String message=strOpt.get();
			System.out.println(message.length());
		}

if文を利用しないでnullチェックする方法はラムダ式を用いて下記のように記載することもできる。

java
		strOpt.ifPresent(v->System.out.println(v.length()));

#値として受け取る場合
map関数を利用する。
mapメソッドの戻り値は、ラムダ式の戻り値をラップしたOptionalとなる。(この場合はInteger型のOptionalが返ってくる)
strOptの値が存在しない場合、値を持たないOptionalオブジェクトが返ってくる。

java
Optional<String>strOpt=Optional.ofNullable(str);
Optional<Integer>lengthOpt=strOpt.map(v->v.length());

#参考
https://qiita.com/shindooo/items/815d651a72f568112910

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?