Java

Optional.ofNullable 로 null-safe 처리 하기

Dean83 2025. 11. 4. 13:16

단순히 if 문으로 null 체크를 할 수도 있다. 그리고 사실 이 방법을 더 선호 하는 편이다. 

그러나 java 에서는 체이닝이 기본으로 사용하고 있고, 가독성 보다는 코드를 줄이는걸 좋아 하는거 같다. 

Optional 이라고 하는 클래스를 제공하여, 이를 이용하여서 null일 경우 하단의 람다식을 수행하지 않고, null이 아닐 경우만 수행하도록

할 수 있다. 

 

 

Optional 에서 제공하는 메소드 중 이 글의 주제와 맞는 2개의 메소드를 일단 간략히 보자면, 아래와 같다

  • Optional.of()
    • 이 안에 들어가는 인자값은 반드시 null 이 아니어야 한다. null 이면 null point exception이 발생한다.
  • Optional.ofNullable()
    • 이 안에 들어 가는 인자값은 null 이어도 된다. null 일 경우 Optional.empty() 로 처리하여 하위 코드를 구동한다
    • ifPresent() 를 통해 리턴값이 없는 람다식의 경우, null safe 처리를 한다.

 

따라서, Optional.ofNullable 을 사용해야 한다. 자동완성이 종종 of 를 사용할때가 있어서 주의하자는 뜻으로 기록을 남긴다. 

Optional.ofNullable 의 map 을 통해서 null-safe 인 값일 경우 동작하도록 한다.

 

...

//단순 Optional변수일 경우
Optional.ofNullable(변수).map(x -> x.stream().
	....
    ).orElse(Optional.Empty());
    
    
...

//List 변수일 경우
Optional.ofNullable(변수).map(x -> x.stream()
	.map(...)
    ...
    .toList()
    ).orElse(List.of));
    
    
...

//리턴값이 없이, null이 아닐경우 특정 식을 실행 하고 싶을때
Optional.ofNullable(변수).ifPresent(x -> x.stream()
	....
    );

'Java' 카테고리의 다른 글

Atomic 자료형  (0) 2025.12.12
파일 쓰고, 읽기 예제  (0) 2025.10.02
Checked, Unchecked Exception  (0) 2025.10.01
Stream API  (0) 2025.09.10
Java Collections Framework (List, Map...)  (0) 2025.09.10