| 
                         //language=html 
- String textBlock = """ 
 - <span style="color: green">Hello %s</span>"""; 
 - System.out.println(textBlock.formatted(nick)); 
 
  
Switch 提升 
Arrow Labels 
接入了 "->" switch 箭头,不需要写那么多 break 啦,代码如下: 
- //legacy 
 -  switch (DayOfWeek.FRIDAY) { 
 -  case MONDAY: { 
 -  System.out.println(1); 
 -  break; 
 -  } 
 -  case WEDNESDAY: { 
 -  System.out.println(2); 
 -  break; 
 -  } 
 -  default: { 
 -  System.out.println("Unknown"); 
 -  } 
 -  } 
 -  //Arrow labels 
 -  switch (DayOfWeek.FRIDAY) { 
 -  case MONDAY, FRIDAY, SUNDAY -> System.out.println(6); 
 -  case TUESDAY -> System.out.println(7); 
 -  case THURSDAY, SATURDAY -> System.out.println(8); 
 -  case WEDNESDAY -> System.out.println(9); 
 -  } 
 
  
Switch Expressions 
也就是 switch 可以有返回值啦,代码如如下: 
- //Yielding a value 
 - int i2 = switch (DayOfWeek.FRIDAY) { 
 - case MONDAY, FRIDAY, SUNDAY -> 6; 
 - case TUESDAY -> 7; 
 - case THURSDAY, SATURDAY -> 8; 
 - case WEDNESDAY -> 9; 
 - default -> { 
 - yield 10; 
 - } 
 - }; 
 
  
关键字 yield 表示 switch 表达式的返回值。 
我想马上使用这些特性 
你说的这么多,都非常不错,但是我们线上还是 Java 8 环境,有什么用?也就看看而已。不用担心,有人也想到啦。 https://github.com/bsideup/jabel 就是这个项目,支持将 JDK 12+ 的各种语法能够透明编译到 Java 8 的 VM 上,也就是你现在用这些语法特性跑在 Java 8 上完全没有问题,所以即便是 Java 8 的环境,没有问题,以上的特性都可以使用。 
如何使用?非常简单。 
首先下载最新的 JDK,如 JDK 13 ,然后在依赖中添加 jabel-java-plugin 
- <dependency> 
 -  <groupId>com.github.bsideup.jabel</groupId> 
 -  <artifactId>jabel-javac-plugin</artifactId> 
 -  <version>0.2.0</version> 
 -  </dependency> 
 
  
然后调整一下 maven 的 compiler plugin,将 source 设置为你想要的 Java 版本,如 13 , target 和 release 设置为 8 就可以啦。 IntelliJ IDEA 会自动识别,也不需要调整。 
- <plugin> 
 -  <groupId>org.apache.maven.plugins</groupId> 
 -  <artifactId>maven-compiler-plugin</artifactId> 
 -  <version>3.8.1</version> 
 -  <configuration> 
 -  <source>13</source> 
 -  <target>8</target> 
 -  <release>8</release> 
 -  </configuration> 
 - </plugin> 
 
  
这样你就可以愉快地使用介绍的特性啦。 
总结 
如果有一些特性没有整理,而且非常有用的,大家反馈一下,如 API 的调整等,方便后续同学参考一下。                         (编辑:滁州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |