🍊

[Java]Optionalについて

に公開

Optionalとは

OptionalはJava 8から導入されたクラスで、nullによるバグや意図しない動作を防ぐためのラッパークラスです。

使い方

//値が存在するときだけ処理を実行
Optional<String> name = Optional.ofNullable(getName()); // nullでもOK
name.ifPresent(n -> System.out.println(n.length()));

// 値があればその値、なければ"default"
String result = name.orElse("default");

// 値がなければ例外を投げる(NoSuchElementException)
String result = name.orElseThrow(() -> ...);

//値があれば大文字に変換する
//戻り値はOptional<String>でラップされている
Optional<String> fruitName = Optional.of("banana");
Optional<String> fruitUpper = fruitName.map(n -> n.toUpperCase());
System.out.println(fruitUpper.orElse("N/A"));  // 出力: BANANA

//"t" で始まる名前だけを出力する
//戻り値はOptional<String>でラップされている
Optional<String> sportsName = Optional.of("tennis");
Optional<String> result = sportsName.filter(n -> n.startsWith("t"));
System.out.println(result.orElse("合致せず"));  // 出力: tennis

Discussion