2023.11.09 [ChatGPT 3.5의 도움을 받아서 작성]
Optional 클래스 메서드들
Optional 클래스
- 자바 8에서 도입된 클래스로, null을 포함할 수 있는 값을 감싸고 있는 래퍼 클래스이다.
- 값의 존재 여부를 확인하고 값에 접근하는 메서드를 제공하여 안전하게 작업할 수 있도록 도와준다.
- Optional을 사용하면 값이 null인 경우(값이 존재하지 않을 경우)에 대한 예외 처리를 명시적으로 다룰 수 있으며, 코드의 가독성과 안정성을 향상시킬 수 있습니다.
💞 Optional.of() 및 Optional.ofNullable()은 Optional 객체를 생성하는 두 가지 메서드
of()
- Optional.of(value)는 주어진 값이
null이 아닌 경우에 Optional 객체를 생성
- 즉, 값이 null인 경우 NullPointerException이 발생
String name = "John Doe";
Optional<String> optionalName = Optional.of(name);
ofNullable()
- Optional.ofNullable(value)는 주어진 값이
null인 경우에도 Optional 객체를 생성
String name = null;
Optional<String> optionalName = Optional.ofNullable(name);
isPresent()
get()
if (optionalName.isPresent()) {
String value = optionalName.get();
} else {
}
💞 orElse()와 orElseThrow() 메서드는 모두 Optional 객체가 비어있을 때 값을 반환하는 역할
orElse(defaultValue)
String value = optionalName.orElse("Default Value");
orElseThrow()
- 값이 존재하지 않는 경우 예외를 던지도록 정의
- 값이 반드시 존재해야 하는 상황에서 Optional을 사용하면서 예외 처리를 명시적으로 처리하고자 할 때 유용
- 예외 처리를 명시적으로 다룰 수 있으며, 코드의 가독성과 안정성을 향상시킬 수 있습니다. 예외 처리를 미루거나 무시하는 대신, 예외를 던져서 문제를 효과적으로 식별하고 처리
Optional<String> optionalName = Optional.ofNullable(getName());
String name = optionalName.orElseThrow(NoSuchElementException::new);