【Java】nullをOptionalでコントロール nullなんて怖くないっ!
Java開発されている方がよく困るのはnullのコントロールです
以下のソースは「NullPointerException」を発生させます。
「System.out.println(test.toString());」の「toString()」を実施する際に「test」がnullのため例外が発生してしまいます( ;∀;)
public static void main(String[] args) {
Integer test = null;
List<Integer> numberList = Arrays.asList(1, 2, 3);
for (Integer number : numberList) {
test = judgeNumber(number);
// ここでNullPointerExceptionが発生します!!
System.out.println(test.toString());
}
}
private static Integer judgeNumber(Integer number) {
if (number != 2) {
return number;
}
return null;
}
// 結果:NullPointerException
nullをコントロールするために、
Java8で追加されたクラス「java.util.Optional」を使用するのです
以下のソースイメージです
public static void main(String[] args) {
// 「Optional」で宣言する
Optional<Integer> test = null;
List<Integer> numberList = Arrays.asList(1, 2, 3);
for (Integer number : numberList) {
test = judgeNumber(number);
// 「test」がnullでなければtestを出力
if (test.isPresent()) {
// 「NullPointerException」を発生させることもなく出力できる
System.out.println(test.get().toString());
}
}
}
// Optionalで返却する
private static Optional<Integer> judgeNumber(Integer number) {
if (number != 2) {
return Optional.of(number);
}
return null;
}
// 結果:1 3と出力される
「Optional」はnullかもしれない値をコントロールすることができます
nullの可能性があるということをソース内で明示する意味として使用されることもあるのです
Optionalでどんどんnullを撃退しましょう!!
ではっ
是非フォローしてください
最新の情報をお伝えします