Errors 초급

별도의 null 가드 없이 switch 케이스로 null을 직접 처리합니다.

✕ Java 8
// Must check before switch
if (status == null) {
    return "unknown";
}
return switch (status) {
    case ACTIVE  -> "active";
    case PAUSED  -> "paused";
    default      -> "other";
};
✓ Java 21+
return switch (status) {
    case null    -> "unknown";
    case ACTIVE  -> "active";
    case PAUSED  -> "paused";
    default      -> "other";
};
이 코드에 문제가 있나요? 알려주세요.
🎯

명시적

null 처리가 switch에 바로 표시됩니다.

🛡️

NPE 없음

null 값으로 switch해도 NullPointerException이 발생하지 않습니다.

📐

일체형

null을 포함한 모든 케이스가 단일 switch 표현식에 있습니다.

이전 방식
switch 전 null 가드
모던 방식
case null
JDK 버전
21
난이도
초급
switch의 null 케이스
사용 가능

JDK 21 LTS (2023년 9월) 이후 널리 사용 가능

패턴 매칭 switch는 null을 케이스 레이블로 매칭할 수 있습니다. 이를 통해 switch 전에 null 확인이 필요 없어지고 null 처리가 명시적이고 가시적이 됩니다.

공유 𝕏 🦋 in