ENN
Java Optional의 개념 및 사용법 본문
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 객체가 비어있다면 예외 공급자 함수를 통해 예외를 발생시킴 |
'백엔드' 카테고리의 다른 글
Docker compose를 이용한 Spring Boot, Mysql 배포 (0) | 2022.09.13 |
---|---|
ResponseEntity vs DTO (0) | 2022.09.11 |
Spring 예외 처리 : HandlerExceptionResolver (0) | 2022.09.02 |
HTTP 메서드와 멱등성(idempotent) (0) | 2022.09.02 |
자바 synchronized 개념정리 (0) | 2022.07.24 |