inblog logo
|
moohyun
    기술정리

    Optional 클래스를 이용한 null 처리

    화낼거양's avatar
    화낼거양
    Nov 20, 2024
    Optional 클래스를 이용한 null 처리
     
     
    💡
    Optional 클래스는 자바 8에서 도입된 기능으로, null 값을 처리하는 데 도움을 주기 위해 설계된 컨테이너 클래스입니다. 이 클래스는 객체의 존재 여부를 명확하게 표현함으로써 null 관련 오류를 방지하고, 보다 명시적이고 안전한 코드 작성을 돕습니다.
     

    주요 기능

    • 값의 존재 여부를 표현: Optional은 값이 있을 수도 있고 없을 수도 있는 상황을 표현합니다.
    • 널 포인터 예외 방지: Optional을 사용하면 null 체크를 명시적으로 할 수 있어 NullPointerException을 방지할 수 있습니다.
     

    예제 1: Optional 객체 생성 및 값 확인

     
    String data1 = null; Optional<String> op1 = Optional.ofNullable(data1); if (op1.isPresent()) { String r1 = op1.get(); System.out.println("r1 : " + r1); }
     
    • Optional.ofNullable(data1): data1 값이 null일 수 있으므로 ofNullable 메서드를 사용하여 Optional 객체를 생성합니다.
    • 값 확인 및 출력: isPresent() 메서드를 사용하여 값이 존재하는지 확인하고, 존재하면 값을 가져와 출력합니다. 이 경우 data1이 null이므로 출력되지 않습니다.
     
     

    예제 2: 값이 없을 경우 기본값 반환

     
    String data2 = null; String r2 = Optional.ofNullable(data2).orElseGet(() -> "null입니다."); System.out.println("r2 : " + r2); // r2 : null입니다. 출력
     
    • Optional.ofNullable(data2): data2 값이 null일 수 있으므로 ofNullable 메서드를 사용하여 Optional 객체를 생성합니다.
    • orElseGet 메서드 사용: 값이 존재하지 않는 경우, 람다식 () -> "null입니다."를 실행하여 "null입니다."를 반환합니다.
    • 결과 출력: data2가 null이므로 "null입니다."가 출력됩니다.
     
     
     

    예제 3: 값이 없을 경우 예외 던지기

     
    String data3 = null; String r3 = Optional.ofNullable(data3).orElseThrow(() -> new RuntimeException("null 예외")); // data3가 null 이면 RuntimeException 예외가 발생
     
    • Optional.ofNullable(data3): data3 값이 null일 수 있으므로 ofNullable 메서드를 사용하여 Optional 객체를 생성합니다.
    • orElseThrow 메서드 사용: 값이 존재하지 않는 경우, 지정된 예외(RuntimeException)를 던집니다. data3가 null이므로 RuntimeException이 발생합니다.
     
    Share article

    moohyun

    RSS·Powered by Inblog