orElse()와 orElseThrow()
Optional 객체가 값이 없을경우 대체값을 설정한다.
import java.util.NoSuchElementException;
import java.util.Optional;
public class Main {
public static void main(String[] args) {
// Optional 객체 초기화: 값이 있을 경우
Optional<String> optionalWithValue = Optional.of("Hello");
// Optional 객체 초기화: 값이 없을 경우
Optional<String> optionalEmpty = Optional.empty();
// Optional 객체 초기화: 값이 null일 가능성이 있는 경우
String nullableValue = null;
Optional<String> optionalNullable = Optional.ofNullable(nullableValue);
// 출력
printOptional(optionalWithValue);
printOptional(optionalEmpty);
printOptional(optionalNullable);
}
public static void printOptional(Optional<String> optional) {
try {
// 값이 있는 경우 해당 값 출력
String value = optional.orElseThrow(NoSuchElementException::new);
System.out.println("Optional value: " + value);
} catch (NoSuchElementException e) {
// 값이 없는 경우 대체값으로 "Default Value"를 사용
String defaultValue = "Default Value";
System.out.println("Optional is empty, using default value: " + defaultValue);
// orElse 메소드를 사용하여 대체값 설정
String value = optional.orElse(defaultValue);
System.out.println("Optional value: " + value);
}
}
}
[출력결과]
Optional value: Hello
Optional is empty, using default value: Default Value
Optional value: Default Value
Optional is empty, using default value: Default Value
Optional value: Default Value
'JAVA' 카테고리의 다른 글
Optional<T>의 생성 of() ofNullable(), 초기화 empty(), 값 가져오기 get() orElse() (0) | 2024.03.12 |
---|---|
Optional객체에 중간연산자 사용하기: filter() map() flatMap() isPresent() ifPresent() findAny() findFirst() (0) | 2024.03.12 |
두 개의 스트림 합치기 concat() (0) | 2024.03.05 |
스트림 람다식을 이용한 임의의값 생성하기 iterate generate (0) | 2024.03.05 |
스트림 임의의 수 만들기 ints() longs() doubles() (0) | 2024.03.05 |