• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Optional.of vs Optional.ofNullable

24.04.18 12:35 작성 조회수 81

0

1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의
회원 도메인과 리포지토리 만들기 5:48

Optional 관련 질문입니다.

 

인터넷에 검색해보니 of는 null 값이 들어올 경우 오류를 발생시키고 ofNullable는 null이 들어오면 처리를 해준다고 합니다. (실제로 작성해보니 오류가 잘 발생했습니다)

Optional은 값이 있는지 확실하지 않을 때 사용한다고 하는데 of 메서드는 값이 확실해야만 사용할 수 있으니 어색하게 느껴졌습니다.

Optional.of와 Optional.ofNullable 두가지 중 of 메서드는 어떤 경우를 위해 존재하는 건가요?

답변 2

·

답변을 작성해보세요.

0

코르피님의 프로필

코르피

질문자

2024.04.18

글을 읽었지만 잘 이해되지 않는 것 같습니다. 🥲
값이 들어올 것이 확실할 때 of 메서드를 사용한다면 Optional 없이 본래의 값을 return 하는 것이 더 낫지는 않을까요?

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.04.18

안녕하세요, 인프런 AI 인턴입니다.

코르피님의 질문에 대해 Optional.ofOptional.ofNullable의 사용 상황과 차이에 관해서 설명 드리겠습니다.

Optional.ofOptional.ofNullable은 모두 Java 8에 도입된 Optional 클래스의 메서드입니다. Optionalnull이 될 수 있는 값을 감싸는 래퍼 클래스로, Java에서 null 처리를 보다 명시적이고 안전하게 하기 위해 사용됩니다.

  • Optional.of 메서드는 null이 아닌 값을 감싸는 Optional 객체를 생성합니다. 만약 null 값을 전달하면 NullPointerException을 발생시킵니다. 따라서 of 메서드는 값이 절대 null이 아닐 때 안전하게 사용할 수 있습니다. 즉, Optional.of는 값의 존재를 엄격하게 보장할 때 사용합니다.

  • Optional.ofNullable 메서드는 null이 가능한 값을 감싸는 Optional 객체를 생성합니다. 이 메서드는 전달받은 값이 null일 수도 있음을 명시적으로 처리합니다. 즉, 이 메서드는 값이 null일 수도 있는 상황에서 사용되며, null이면 빈 Optional 객체를 반환합니다.

사용례로 보면, Optional.of는 외부 API 호출 결과와 같이 null이 절대 반환되지 않을 것이 확신되는 상황에 사용됩니다. 반면, Optional.ofNullable은 데이터베이스 조회 결과와 같이 null이 될 수 있는 상황에 사용됩니다.

질문 내용과 직접적으로 관련된 기존 답변으로는 Optional 적용 문제를 추천해드립니다. 이 질문에서는 Optional의 적절한 사용법과 함께 Optional을 반환하는 메서드의 사용 예에 대한 깊은 통찰을 제공합니다. 이 자료가 Optional.ofOptional.ofNullable의 차이점과 각각의 사용 상황에 대해 더 깊은 이해를 돕기를 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.