Optionalの宣言方法
Optionalを使用するには型をラップして使う
Optional<String> opt1;
自作クラスでも同様
testClass.java
public class testClass
{
private String no;
private BigDecimal val;
}
OPtional<testClass> opt2;
使い方
optional型に値をいれるにはoptional.of か optional.ofNullableを使用する。
Optional<String> opt1 = Optional.of("test");
ただ、optional.ofは引数がnullの場合Exceptionが発生するので注意。
Optional<String> opt1 = Optional.of(null);
よって、optional.ofNullableを使用する。
Optional<String> opt1 = Optional.ofNullable("test");
Optional<String> opt2 = Optional.ofNullable(null);
testClass test = new testClass();
Optional<String> opt3 = Optional.ofNullable(test);
値の取り出し方
値を取り出すには、以下を使用する。
get : nullの場合、Exception発生
orElse : null出ない場合変数値、nullの場合orElseの引数を返却
orElseGet : null出ない場合変数値、nullの場合,suppelierの結果を返却
String val1 = opt1.get();
String val2 = opt1.orElse("")
自作クラスから値を取り出すときは、以下を使用してフィールドを取得できる。
map
String val1 = opt3.map(testClass::getNo).orElse("1");
String val2 = opt3.map(v -> v.getNo()).orElse("2");