🕊️ 자바에서 Optional을 올바르게 쓰는 법

당신이 얼마나 오래 프로그래밍을 했든지, NullPointerException(이하 NPE)은 가장 답답한 문제 중 하나입니다.


Optional 클래스는 NPE 문제를 해결하기 위해 자바 8부터 도입되었습니다.


java.util.Optional<T> 클래스의 목적은 null일 수 있는 T 타입의 개체에 대한 안전한 대안을 제공하는 것입니다. optional 객체를 만들 수 있는 방법을 살펴봅시다.


📌 Empty Optional

Optional.empty()를 사용하면 비어 있는 optional 객체를 생성할 수 있습니다.


📌 Nullable Optional

Optional.ofNullable() 메소드를 사용하여 nullable optional 객체를 만들 수 있습니다. 이러한 객체는 null이거나 null 값을 가질 수 있습니다.


📌 Non-Nullable Optional

Optional.of() 메소드를 사용하여 null이 아닌 optional 객체를 만들 수 있습니다.


Optional 클래스에 존재하는 get() 메소드는 값이 존재한다면 그 값을 가져오거나 NoSuchElementException 예외를 던집니다.


대신에 isPresent() 메소드를 사용하여 값이 존재하는지 여부에 대한 boolean 값을 반환하는 두 번째 방법을 사용할 수 있습니다. 그러나 이 방법은, !=null을 사용하는 것과 별반 다르지 않아 보입니다.

```

if(optionalWallet.isPresent()){
savings.add(optionalWallet.get().getMoney());
}


```


코드를 더 간결하게 만들기 위해, ifPresent() 메소드를 사용할 수도 있습니다.

```

optionalWallet.ifPresent(wallet -> savings.add(wallet.getMoney()));

```


값이 비어있을 때 기본값을 가져오는 시나리오가 있을 수 있습니다. orElse() 메소드를 사용하여 옵션이 null일 때 대체 값을 생성할 수 있습니다. 또는 orElseGet() 메소드를 사용하여 기본값을 계산할 수도 있습니다.

```

Wallet wallet = optionalWallet.orElse(new Wallet(0));

```


지금까지 자바에서 Optional을 사용하는 몇 가지 좋은 방법이었습니다.


Using Optional in Java the right way

Medium

Using Optional in Java the right way

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 10월 19일 오전 11:54

 • 

저장 160조회 10,168

댓글 0

    함께 읽은 게시물

    🙉 달레의 찐팬이 되어주실래요? 💕

    ... 더 보기

    조회 563


    < 해결책 과잉 시대, 이제는 의미가 답이다 >

    1. 과거에는 해결해야 할 문제가 해결책의 양을 크게 웃돌았습니다.

    ... 더 보기

    내가 구현한 기술의 특징에 대해 개발자가 아닌 사람들에게 설명하라고 했을 때 나의 심정

    ... 더 보기

     • 

    조회 2,766


    샘 알트만: "지금 당신이 o3보다 더 똑똑하다고 생각하세요?"


    ... 더 보기

    샘 알트만: "지금 당신이 o3보다 더 똑똑하다고 생각하세요?" : 오호츠크 리포트

    55check.com

    샘 알트만: "지금 당신이 o3보다 더 똑똑하다고 생각하세요?" : 오호츠크 리포트

    서비스 텐션

    ... 더 보기

    서비스 텐션

    K리그 프로그래머

    서비스 텐션

     • 

    댓글 1 • 저장 6 • 조회 3,814


    🎯 유튜브에 100번째 코딩 테스트 문제 풀이 영상을 올렸습니다!

    ... 더 보기

    달레의 코딩 테스트

    www.youtube.com

    달레의 코딩 테스트

     • 

    저장 26 • 조회 3,343