Skip to content

Switch Pattern Matching

JDK 21 增强了 switch 表达式的模式匹配功能。

模式守卫

java
String result = switch (obj) {
    case Integer i when i > 0 -> "正整数: " + i;
    case Integer i -> "整数: " + i;
    case String s -> "字符串: " + s;
    case null -> "null";
    default -> "未知";
};

多类型模式

java
String result = switch (obj) {
    case List list && list.size() > 0 -> "非空列表";
    case List list -> "空列表";
    case String s -> "字符串: " + s;
    default -> "其他";
};

小结

Pattern Matching for switch 简化了类型检查:

  • 模式守卫(when 子句)
  • 多类型组合
  • null 处理

JDK 21+ 可用。

基于 VitePress 构建