[내배캠 Spring TIL] Java Optional 썸네일

[내배캠 Spring TIL] Java Optional

Java
Optional
2024년 8월 2일

자바 Optional에 대해 배운 내용을 정리해보도록 한다.

그전에 NullPointerException에 대해 먼저 정리하겠다.

NPE(NullPointerException) #

말 그대로 널 값을 가지고 있는 참조형 변수에 접근하려 하면 발생한다. 여러가지 이유로 null 값이 들어가기 때문에 많이 발생하는 오류중 하나이다.

String nullValue = null;
nullValue.length(); // NullPointerException

기존 처리 방법 #

if문 또는 try catch문으로 처리하게 되는데 이 방법은 처리해야할 값이 많아지면 많아질수록 코드가 읽기 어려워지고 길어지게 된다.

String value = getValue(); // null일수도 있음
int valueLength;

try {
    valueLength = value.length();
} catch (NullPointerException e) {
    valueLength = -1;
}

Optional #

null이 올 수 있는 값을 감싸는 Wrapper 클래스로, 참조하더라도 NPE가 발생하지 않도록 도와준다. 위 코드를 Optional을 사용해서 표현하면 아래와 같다.

int valueLength = Optional.ofNullable(getValue()).map(String::length).orElse(-1);

이처럼 코드의 예외 처리가 간단해진 것을 알 수 있다. 잘 사용하면 읽기 좋은 코드를 쉽게 작성할 수 있을것 같다.


최근 게시물

김진근 • © 2025