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() 메서드를 사용하여 값이 존재하는지 확인하고, 존재하면 값을 가져와 출력합니다. 이 경우 data1null이므로 출력되지 않습니다.
 
 

예제 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입니다."를 반환합니다.
  • 결과 출력: data2null이므로 "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)를 던집니다. data3null이므로 RuntimeException이 발생합니다.
 
Share article

moohyun