【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を撃退しましょう!!

ではっ

是非フォローしてください

最新の情報をお伝えします

コメントを残す