inblog logo
|
silver
    기술정리

    [기술정리] Optional - null 처리

    silver's avatar
    silver
    Jan 06, 2025
    [기술정리] Optional - null 처리
    Contents
    Optional의 타입Optional 생성 코드로 Optional 알아보기!
    : Java 8에서 도입된 클래스이며, null 값 처리를 안전하고 간결하게 하기 위해 설계되었다. Optional은 값이 있을 수도 있고 없을 수도 있는 컨테이너(Wrapper) 역할을 하며, null 포인터 예외(NullPointerException)를 방지하는 데 유용하다.

    Optional의 타입

    notion image

    Optional 생성

    1. Optional.of(value)
    값이 반드시 null이 아닐 때 사용. 값이 null이면 예외를 던진다.
    Optional<String> opt = Optional.of("Hello");
    2. Optional.ofNullable(value)
    값이 null일 수도 있을 때 사용. null이면 비어 있는 Optional을 반환한다.
    Optional<String> opt = Optional.ofNullable(null); // 빈 Optional 반환
    3. Optional.empty()
    비어 있는 Optional 객체를 생성한다.
    Optional<String> opt = Optional.empty();

    코드로 Optional 알아보기!

    public class App { public static void main(String[] args) { String data1 = null; Optional<String> op1 = Optional.ofNullable(data1); if (op1.isPresent()) {// ofNUllable해서 자동완성 String r1 = op1.get();//get 꺼내는거 System.out.println("r1 : " +r1); } String data2 = null; // Optional<String> op2 = Optional.ofNullable(data2); // String r2 = Optional.ofNullable(data2).get(); ->nullpointException뜸 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); } }
    .orElseGet(()→{}) 과 .orElseThrow(()→{})
    특징
    orElseGet
    orElseThrow
    용도
    기본값 반환
    예외를 발생시킴
    Supplier 실행 시점
    값이 없을 때만 실행
    값이 없을 때만 실행
    반환값
    기본값 또는 기존 값
    기존 값 (값이 없으면 예외 발생)
    대표적인 사용
    기본값을 동적으로 생성해야 할 때 사용
    값이 반드시 필요하거나 비정상 상황에서 사용
    notion image
    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);
    notion image
    Share article
    Contents
    Optional의 타입Optional 생성 코드로 Optional 알아보기!

    silver

    RSS·Powered by Inblog