[기술 정리] 옵셔널(Optional)

lhs's avatar
Nov 20, 2024
[기술 정리] 옵셔널(Optional)
💡
값이 있을 수도, 없을 수도 있는 상황을 안전하게 처리하기 위한 컨테이너 클래스
 

1. 옵셔널이란?

Java 8에서 도입된 옵셔널(Optional)은 값이 있을 수도 있고 없을 수도 있음을 나타내는 컨테이너로, 주로 null 값을 안전하게 처리하기 위해 사용되며, null을 직접 다루지 않고 값의 존재 여부를 명확하게 처리할 수 있게 한다.

2. 예제 코드

public class App { public static void main(String[] args) { String data1 = null; Optional<String> op1 = Optional.ofNullable(data1); if (op1.isPresent()) { String r1 = op1.get(); System.out.println("r1: " + r1); } String data2 = null; String r2 = Optional.ofNullable(data2).orElseGet(() -> "없어"); System.out.println("r2: " + r2); String data3 = null; String r3 = Optional.ofNullable(data3).orElseThrow(() -> new RuntimeException("없어")); System.out.println("r3: " + r3); } }
  • ofNullable
    • 주어진 값이 null일 수도 있고 아닐 수도 있을 때 사용되는 Optional을 생성하는 메서드
    • 값이 null이면 빈 Optional을 반환하고, 값이 있으면 그 값을 포함한 Optional을 반환한다.
  • isPresent
    • Optional에 값이 존재하는지 확인하는 메서드
    • 값이 있으면 true, 없으면 false를 반환한다.
  • orElseGet
    • Optional의 값이 비어 있을 경우, 제공된 람다식을 통해 대체 값을 생성해 반환하는 메서드
    • 값이 있으면 그 값을 반환하고, null일 경우 동적으로 생성된 값을 반환한다.
  • orElseThrow
    • Optional의 값이 비어 있을 경우, 지정된 예외를 던지는 메서드
    • 값이 없으면 예외를 발생시키고, 값이 있으면 그 값을 반환한다.
Share article

LHS's Study Space