JEP 420:简化的 switch 表达式

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
可观测监控 Prometheus 版,每月50GB免费额度
云原生网关 MSE Higress,422元/月
简介: Java 14 引入了 switch 表达式, Java 18 实现了 JEP 420以下是 switch 表达式

# JEP 420:简化的 switch 表达式


---


Java 14 引入了 `switch` 表达式, Java 18 实现了 `JEP 420`


以下是 `switch` 表达式


```Java  

int numLetters = switch (day) {

   case MONDAY, FRIDAY, SUNDAY -> 6;

   case TUESDAY                -> 7;

   case THURSDAY, SATURDAY     -> 8;

   case WEDNESDAY              -> 9;

   default                     -> 11;    

};

```


### 对比


之前

```Java

static String formatter(Object o) {

   String formatted = "unknown";

   if (o instanceof Integer i) {

       formatted = String.format("int %d", i);

   } else if (o instanceof Long l) {

       formatted = String.format("long %d", l);

   } else if (o instanceof Double d) {

       formatted = String.format("double %f", d);

   } else if (o instanceof String s) {

       formatted = String.format("String %s", s);

   }

   return formatted;

}

```


之后


```Java

static String formatterPatternSwitch(Object o) {

   return switch (o) {

       case Integer i -> String.format("int %d", i);

       case Long l    -> String.format("long %d", l);

       case Double d  -> String.format("double %f", d);

       case String s  -> String.format("String %s", s);

       default        -> o.toString();

   };

}

```


对于简短的 `switch` 逻辑,可以更加清晰的表达

相关文章
|
2月前
|
前端开发 JavaScript
前端基础(六)_流程控制语句(if、if-else、if-else嵌套、switch)
本文介绍了JavaScript中的流程控制语句,包括if、if-else、if-else嵌套和switch语句。
18 2
前端基础(六)_流程控制语句(if、if-else、if-else嵌套、switch)
|
3月前
|
Java 数据安全/隐私保护
03 Java流程控制-分支(if+switch+变量类型)
03 Java流程控制-分支(if+switch+变量类型)
30 5
|
5月前
|
Rust 编译器
Rust的Match语句:强大的控制流运算符
Rust的Match语句:强大的控制流运算符
|
6月前
|
Java 测试技术
Java一分钟之-控制流程:if条件语句与switch
【5月更文挑战第8天】本文探讨了Java编程中的`if`和`switch`控制流程语句,强调了常见问题和易错点。对于`if`语句,需注意使用大括号避免逻辑错误,完整比较操作,以及理解`&&`和`||`的短路行为。在`switch`语句中,要注意只能基于常量进行判断,每个`case`后应有`break`,并提供`default`分支。避免错误的策略包括始终使用大括号、确保清晰的条件、进行代码审查和编写单元测试。掌握这些要点对编写高效、可维护的代码至关重要。
58 0
Java一分钟之-控制流程:if条件语句与switch
|
6月前
|
存储 算法 编译器
C++ 新特性 lamada表达式
C++ 新特性 lamada表达式
|
6月前
|
C++
C++语言中Switch语句循环和作用类型
C++语言中Switch语句循环和作用类型
74 0
|
6月前
|
安全 Java 开发者
JDK 21中的Switch模式匹配:一种更强大且灵活的分支选择机制
本文深入探讨了JDK 21中引入的Switch模式匹配的新特性。这种新的模式匹配机制不仅简化了传统的switch语句,还引入了类型检查和模式匹配,使得代码更加简洁、易读且功能强大。本文将详细介绍Switch模式匹配的语法、使用场景以及与传统switch语句的区别,并通过示例代码展示其在实际开发中的应用。
1211 0
|
6月前
C 语言中的 switch 语句和 while 循环详解
替代多重 if..else 语句,可以使用 switch 语句。switch 语句用于选择多个代码块中的一个来执行
82 0
|
存储 安全 编译器
GNU C 扩展语法:指定初始化与语句表达式
GNU C 扩展语法:指定初始化与语句表达式
292 0
|
Java
Java基本语法(13)--条件分支switch-case结构
Java基本语法(13)--条件分支switch-case结构
145 1
Java基本语法(13)--条件分支switch-case结构