Optional<T>
지네릭 클래스로 T타입의 객체를 감싸는 래퍼 클래스.
최종연산결과를 Optional 객체에 담아서 반환해 반환결과가 null인지 if문으로 체크하는대신에 Optional에 정의된 메서드를 통해 간단히 처리할 수 있다.
https://standout.tistory.com/1393
Optional객체는 of()또는 null일 가능성이 있으면 ofNullable()을 사용한다.
Optional<T>타입의 참조변수를 기본값으로 초기화할때는 null로 초기화할수있지만 empty()를 사용하는 것이 바람직하다.
Optional객체에 저장된 값을 가져올때는 get()을 사용한다. null일때는 NoSuchElementException이 발생하며 이를 대비해 orElse()로 값을 지정할 수 있다.
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) {
if (optional.isPresent()) {
System.out.println("Optional value: " + optional.get());
} else {
// 값이 없는 경우 대체값으로 "Default Value"를 사용
String defaultValue = "Default Value";
System.out.println("Optional is empty, using default value: " + defaultValue);
// orElse 메소드를 사용하여 대체값 설정
System.out.println("Optional value: " + optional.orElse(defaultValue));
}
}
}
[출력결과]
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
https://standout.tistory.com/1459
https://standout.tistory.com/1460