Java -Optional API

백엔드류·2024년 2월 12일

Java

목록 보기
4/6

Optional API

개발할때 가장 많이 발생하는 예외 중 하나가 NullPointerException(NPE)이다.
이를 피하려면 NULL 여부 검사를 필수적으로 해야하는데 만약 NULL 검사를 해야하는 변수가 많은 경우 가독성이 떨어진다. 하지만 Java8에서 부터 Optional<T>를 제공하여 NPE를 방지할수 있도록 도와주고 Optional 클래스의 메소드를 통해 NULL을 컨트롤 할 수 있다.


import java.util.Optional;

public class Main {
    public static void main(String[] args) {
        // 예시로 사용할 객체
        String nullableString = null;

        // 기존의 null 체크 방식
        if (nullableString != null) {
            System.out.println("Length: " + nullableString.length());
        } else {
            System.out.println("Nullable string is null.");
        }

        // Optional을 사용한 null 체크
        Optional<String> optionalString = Optional.ofNullable(nullableString);
        if (optionalString.isPresent()) {
            System.out.println("Length: " + optionalString.get().length());
        } else {
            System.out.println("Nullable string is null.");
        }

        // 람다식과 Optional을 이용한 null 체크와 처리
        optionalString.ifPresentOrElse(
            str -> System.out.println("Length: " + str.length()),
            () -> System.out.println("Nullable string is null.")
        );
    }
}
  • null인지 아닌지 확실하지 않을 때 Optional.ofNullable() 메소드를 사용하여 Nullable 객체를 Optional 객체로 변환하고, isPresent() 메소드로 null 여부를 확인한다.
  • ifPresent() 메소드를 사용하여 값이 존재할 때만 동작하도록 처리할 수 있다.
  • Optional.ofNullable() 메소드는 주어진 값이 null이 아니면 해당 값을 갖는 Optional 객체를 생성하고, 값이 null이면 빈 Optional 객체를 생성한다. 이 메소드는 주로 Nullable한 객체를 Optional 객체로 변환할 때 사용된다.
profile
공부한 내용을 정리한 블로그입니다 & 백엔드 개발자

0개의 댓글