728x90
반응형

Optional 값 가져오기 - get(), orElse(), orElseGet(), orElseThrow()

get() 메서드

값이 없는 경우 NoSuchElementException 발생시킬 있으므로, isPresent() 확인 후에 사용해야 함

import java.util.Optional;

public class GetMethodExample {
    public static void main(String[] args) {
        Optional<String> optionalValue = Optional.of("Hello, Optional!");
        
        if (optionalValue.isPresent()) {
            String value = optionalValue.get();
            System.out.println(value); // 출력: Hello, Optional!
        }
    }
}

 

orElse() 메서드

optional 객체가 비어있는 경우 기본값 other 반환

import java.util.Optional;

public class OrElseMethodExample {
    public static void main(String[] args) {
        Optional<String> optionalValue = Optional.empty();
        
        String result = optionalValue.orElse("Default Value");
        System.out.println(result); // 출력: Default Value
    }
}

 

orElseGet() 메서드

객체가 비어있는 경우 Supplier 인터페이스를 통해 제공되는 함수를 실행하여 값을 반환

orElse() 달리 값이 비어있을 때만 함수를 실행하므로, 자원 절약에 용이

import java.util.Optional;

public class OrElseGetMethodExample {
    public static void main(String[] args) {
        Optional<String> optionalValue = Optional.empty();
        
        String result = optionalValue.orElseGet(() -> generateValue());
        System.out.println(result); // 출력: Generated Value
    }
    
    private static String generateValue() {
        return "Generated Value";
    }
}

 

orElseThrow() 메서드

Optional 객체가 비어있을 예외를 발생시키는 메서드

Optional 값이 존재하면 해당 값을 반환하고, 값이 없는 경우 exceptionSupplier 통해 제공되는 예외를 발생

import java.util.Optional;

public class OrElseThrowMethodExample {
    public static void main(String[] args) {
        Optional<String> optionalValue = Optional.empty();
        
        try {
            String result = optionalValue.orElseThrow(() -> new IllegalArgumentException("Value not found"));
            System.out.println(result);
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage()); // 출력: Value not found
        }
    }
}
반응형
복사했습니다!