| //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 的调整等,方便后续同学参考一下。 (编辑:宣城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |