Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

ENN

Java Optional의 개념 및 사용법 본문

백엔드

Java Optional의 개념 및 사용법

ParkIsComing 2022. 9. 11. 17:20

Optional 클래스는 Java8부터 지원하는 클래스이다. 그 개념과 사용법을 알아보자.

 

Optional의 개념

java로 코드를 작성하다보면 가장 빈번히 마주치는 에러가 NullPointerException(NPE)이다. 그러다보니 항상 null값에 대한 처리를 고민해하는데 그 고민을 덜어주는 것이 Optional이다!

 

Optional<T> 클래스는 null값이 될 수도 있는 객체를 감싸고 있는 Wrapper 클래스이다. Optional<T>를 사용하면 NullPointerException을 피하기 위해 null 체크를 하지 않아도 된다. 

 

Optional 사용법

Optional 객체는 다음과 같은 방법들로 생성한다.

 

1. 빈 Optional 객체 생성

Optional<String> optional = Optional.empty();

2. null이 아닌 명시된 value를 가지는 Optional 객체 생성

Optional<String> optional = Optional.of(value);

3. value가 null이라도 NPE가 발생하지 않고, Optional.empty를 리턴하는 Optional 객체 생성

Optional<String> optional = Optional.ofNullable(value);

 

 

Optional<T>가 제공하는 메서드

메서드 설명
get 객체에 저장된 값 리턴
isPresent() 저장된 value가 null이 아니면 true, null이면 false 리턴
orElse(T other) 저장된 value가 null이 아니면 그 값을 리턴, null이면 파라미터로 전달된 값을 리턴
filter() 조건을 맞는 Optional 객체는 그대로 통과시키고, 조건을 충족하지 않는 Optional 객체는 Optional.empty()를 리턴
map() 입력받는 값을 다른 값으로 변환함.
orElseThrow() 연산을 끝낸 후에도 Optional 객체가 비어있다면 예외 공급자 함수를 통해 예외를 발생시킴