Objects.requireNonNullElse()
삼항 연산자 없이 명확한 기본값으로 null이 아닌 값을 가져옵니다.
코드 비교
✕ Java 8
String name = input != null
? input
: "default";
// easy to get the order wrong
✓ Java 9+
String name = Objects
.requireNonNullElse(
input, "default"
);
이 코드에 문제가 있나요? 알려주세요.
모던 방식이 더 나은 이유
명확한 의도
메서드 이름이 정확히 무엇을 하는지 설명합니다.
null 안전 기본값
기본값도 null 여부를 확인합니다.
가독성
단순한 null-또는-기본값 로직에서 삼항 연산자보다 낫습니다.
이전 방식
삼항 연산자 null 확인
모던 방식
requireNonNullElse()
JDK 버전
9
난이도
초급
JDK 지원
Objects.requireNonNullElse()
사용 가능
JDK 9 (2017년 9월) 이후 널리 사용 가능
동작 원리
requireNonNullElse는 첫 번째 인수가 null이 아니면 그것을, 그렇지 않으면 두 번째를 반환합니다. 기본값 자체도 null이 될 수 없으며 — 둘 다 null이면 NPE를 던져 버그를 조기에 잡습니다.
관련 문서