投稿

ラベル(Optional)が付いた投稿を表示しています

[java] Optional<T>について

Optionalクラスは何らかの処理の結果を格納・保持するクラスです。 これまでは取得した値が空ではないか、またはnullではないかなど、取得結果について確認したうえで後続の処理を行っている場合があり、これが冗長・可読性低下の原因でした。 Java8から導入されたOptionalクラスを使うと、こういったケースが簡潔に記述できるようになりました。 ここではインスタンスの生成と、値を使用するにあたって利用する主なメソッドについてまとめておきます。 インスタンスの生成 OptionalのインスタンスはOptionalインターフェースに定義されたファクトリメソッドを使用して生成します。 1. Optionalインスタンスを生成するメソッド empty() 空のOptionalのインスタンスを生成する。 of(T value) nullを許容しない値を持ったOptionalのインスタンスを生成する。 nullを指定するとNullPointerExceptionが発生する。 ofNullable(T value) nullを許容し、nullを指定した場合は空のOptionalインスタンスを生成する。 emptyメソッド コード例 Optional<String> optional = Optional.empty(); System.out.println(optional); 実行結果 Optional.empty ofメソッド コード例 Optional<String> optional = Optional.of("test"); System.out.println(optional); 実行結果 Optional[test] ofメソッドにnullを指定するとNullPointerExceptionが発生する。 ofNullableメソッド コード Optional<String> optional = Optional.ofNullable(null); System.out.println(optional); 実行結果 Optional.e