在之前的Java 17新特性中,我们介绍过关于JEP 406: switch的模式匹配,但当时还只是关于此内容的首个预览版本。之后在JDK 18、JDK 19、JDK 20中又都进行了更新和完善。如今,在JDK 21中,该特性得到了最终确定!下面,我们就再正式学习一下该功能! 在以往的switch语句中,对于case中的类型匹配限制是很多的。比如下面...
case 常量表达式1:语句1; ... case 常量表达式2:语句2; default:语句; } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. switch的用法是判断case后面的表达式和switch后面的表达式是否相匹配,一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。 如上所给的代码中,...
case Integer i -> log.info(i.toString()); default -> log.info(""); } 这个功能还是非常有用的,尤其是存在一些抽象封装的时候,可能存在一些父子、兄弟等关系类的时候,为了判断是什么类型,就不用写很多if来处理了,代码简洁度可以得到进一步的优化。 对于上面的例子,还没有升级到Java 17的用户,还涉及两个...
switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。 实例 Test.java 文件代码: publicclassTest{publicstaticvoidmain(Stringargs[]){//char grade = args[0].charAt(0);chargrade='C';switch(grade){case'A':System.out.println("优秀")...
【java21】java21新特性之switch模式匹配 在Java18之前,模式匹配只能使用在if语句中,而在Java18及更高版本中,switch语句支持类型模式的匹配。这意味着开发者可以直接在case标签中匹配对象的类型,而无需在case语句内部进行显式的类型检查和转换。例如,可以直接匹配并处理Integer、String等类型的对象。
// Prior to Java 21 staticvoidtestFooBar(String s) { if(s ==null) { System.out.println("Oops!"); return; } switch(s) { case"Foo","Bar"-> System.out.println("Great"); default-> System.out.println("Ok"); } } switch当仅支持少数引用类型时,这是合理的。但是,如果switch允许任何引...
在之前的Java17 新特性中,我们介绍过关于 switch的,但当时还只是关于此内容的首个预览版本。之后在 JDK 18、JDK 19、JDK 20 中又都进行了更新和完善。如今,在 JDK 21 中,该特性得到了最终确定!下面,我们就再正式学习一下该功能! 在以往的 switch 语句中,对于case中的类型匹配限制是很多的。比如下面这个例子...
在JDK 21中,Switch模式匹配采用了一种新的语法结构,允许开发者在switch语句中使用类型检查和模式匹配。新的语法结构使用switch关键字开始,后跟要匹配的表达式。然后,每个case分支使用箭头(->)分隔匹配模式和要执行的代码块。如果没有匹配到任何模式,可以使用default分支作为备选。
staticvoidtestFooBar(Strings){switch(s){casenull->System.out.println("Oops");case"Foo","Bar"->System.out.println("Great");default->System.out.println("Ok");}} 3.总结 以上就是Java21新特性 – switch模式匹配的全部内容,如有补充请留言。
Switch case语句 语法 Switch() {case} 注意:case穿透现象:当case语句块中没有break语句时,会继续执行下面的case直到碰到break为止 publicclassDemo04{publicstaticvoidmain(String[] args){chargrade='C';switch(grade) {case'A': System.out.println("优秀");break;case'B': ...