本文目录#
新特性概览#
JDK 14 将 switch 表达式标准化(JEP 361),支持返回值与箭头语法,减少 break
与 fall-through 错误。
基础示例#
1 | int numLetters = switch (day) { |
yield 关键字#
在代码块内返回值使用 yield
:
1 | int result = switch (value) { |
注意事项#
- switch 表达式必须覆盖所有分支(包含 default 或 enum 全覆盖);
- 字符串匹配使用 equals,大写敏感;
- 旧语法仍可与新语法共存;
- 对 pattern matching for switch(JEP 406)提供基础。
错误示例#
- fall-through 不再默认生效,若需要可使用
yield
和代码块; - 若在表达式中执行副作用操作需谨慎,保持纯函数式。
自检清单#
- 是否启用新 JDK 版本并配置构建工具?
- 是否在 switch 表达式中返回有限定的不可变对象,避免副作用?
- 是否对 default 分支处理异常或非法输入?
参考资料#
- JEP 361: Switch Expressions:https://openjdk.org/jeps/361
- Java 14 Language Updates:https://docs.oracle.com/en/java/javase/14/language/switch-expressions.html
- Pattern Matching for switch (JEP 406):https://openjdk.org/jeps/406
本作品系原创,采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,转载请注明出处。