[자바] Optional 클래스 메서드들

손경이·2023년 11월 9일
0

자바

목록 보기
15/17

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);

0개의 댓글