Errors 入门

直接将 null 作为 switch case 处理——无需单独的守卫。

✕ 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 中可见。

📏

更少代码

无需在 switch 之前单独进行 null 检查。

🔒

防止 NPE

将 null 作为 case 处理,防止 NullPointerException。

旧方式
switch 前的守卫
现代方式
case null
自 JDK
21
难度
入门
switch 中的 null case
可用

自 JDK 21 LTS 起广泛可用(2023 年 9 月)

模式匹配 switch 可以将 null 作为 case 标签匹配。这消除了在进入 switch 之前的单独 null 检查,使 null 处理在 switch 中清晰可见。

分享 𝕏 🦋 in