Java Optional이란?

Java Optional : Java 8 이후 소개된 클래스로 , 값이 있을 수 도 있고 없을 수 도 있는 Nullable 객체를 감싸는 래퍼 클래스

  • null 값을 명시적으로 다루며, NullPointExecption을 방지하고 코드의 안정성을 높이는데 도움이 된다.

Java Optional의 주요 특징

객체의 존재 여부 확인

  • 객체가 존재하는지 아닌지를 확인 방법을 제공
  • isPresent() 메서드를 활용하여 Optional 객체가 비어있는지 확인할 수 있다.

값의 존재 여부에 따른 동작 처리

  • ifPresent(Consumer action) 메서드를 사용하여 값이 존재할 경우 해당 값을 처리하는 로직을 작성할 수 있다. 이를 통해 값이 존재하지 않을 때의 예외 상황을 방지할 수 있다.

기본 값 설정

  • orElse(T other) 메서드를 사용하여 Optional 객체가 비어있을 경우 기본값을 설정할 수 있다. Optional 객체가 비어있는 경우에만 해당 기본값이 반환된다.

NullPointerException 방지

  • Java Optional을 사용하면 null을 다루는 것보다 더 명시적이고 안전한 코드를 작성할 수 있다. Optional을 적절히 사용하면 NullPointerException을 방지하고 코드의 가독성을 향상시킬 수 있다.

 

 

// 값이 존재할 수도, 없을 수도 있는 값을 Optional로 감싸기
Optional<String> optionalValue = Optional.ofNullable(someValue);

// 값이 존재하는지 확인
if (optionalValue.isPresent()) {
    // 값이 존재할 때 처리할 로직
    String value = optionalValue.get();
    // ...
}

// 값이 존재할 경우 해당 값을 사용하여 처리 (값이 없으면 아무런 동작 없음)
optionalValue.ifPresent(val -> System.out.println("Value: " + val));

// 값이 존재하지 않을 경우 기본값 설정
String result = optionalValue.orElse("Default Value");

// 값이 존재하지 않을 경우 Supplier를 통해 기본값 생성
String result = optionalValue.orElseGet(() -> generateDefaultValue());