加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

值得开发者关注的Java 8后时代的语言特性

发布时间:2019-09-10 18:46:00 所属栏目:评测 来源:佚名
导读:副标题#e# 首先我们必须承认,Java 8 是一个里程碑式的版本,这个相信大多数Java程序员都认同,其中最知名的是 Streams Lambda ,这让 Functional Programming 成为可能,让 Java 换发新的活力。这也是即便 Oracle 不在支持 Java 8 的更新,各个云厂商还是

//language=html

  1. String textBlock = """ 
  2. <span style="color: green">Hello %s</span>"""; 
  3. System.out.println(textBlock.formatted(nick)); 

Switch 提升

Arrow Labels

接入了 "->" switch 箭头,不需要写那么多 break 啦,代码如下:

  1. //legacy 
  2.  switch (DayOfWeek.FRIDAY) { 
  3.  case MONDAY: { 
  4.  System.out.println(1); 
  5.  break; 
  6.  } 
  7.  case WEDNESDAY: { 
  8.  System.out.println(2); 
  9.  break; 
  10.  } 
  11.  default: { 
  12.  System.out.println("Unknown"); 
  13.  } 
  14.  } 
  15.  //Arrow labels 
  16.  switch (DayOfWeek.FRIDAY) { 
  17.  case MONDAY, FRIDAY, SUNDAY -> System.out.println(6); 
  18.  case TUESDAY -> System.out.println(7); 
  19.  case THURSDAY, SATURDAY -> System.out.println(8); 
  20.  case WEDNESDAY -> System.out.println(9); 
  21.  } 

Switch Expressions

也就是 switch 可以有返回值啦,代码如如下:

  1. //Yielding a value 
  2. int i2 = switch (DayOfWeek.FRIDAY) { 
  3. case MONDAY, FRIDAY, SUNDAY -> 6; 
  4. case TUESDAY -> 7; 
  5. case THURSDAY, SATURDAY -> 8; 
  6. case WEDNESDAY -> 9; 
  7. default -> { 
  8. yield 10; 
  9. }; 

关键字 yield 表示 switch 表达式的返回值。

我想马上使用这些特性

你说的这么多,都非常不错,但是我们线上还是 Java 8 环境,有什么用?也就看看而已。不用担心,有人也想到啦。 https://github.com/bsideup/jabel 就是这个项目,支持将 JDK 12+ 的各种语法能够透明编译到 Java 8 的 VM 上,也就是你现在用这些语法特性跑在 Java 8 上完全没有问题,所以即便是 Java 8 的环境,没有问题,以上的特性都可以使用。

如何使用?非常简单。

首先下载最新的 JDK,如 JDK 13 ,然后在依赖中添加 jabel-java-plugin

  1. <dependency> 
  2.  <groupId>com.github.bsideup.jabel</groupId> 
  3.  <artifactId>jabel-javac-plugin</artifactId> 
  4.  <version>0.2.0</version> 
  5.  </dependency> 

然后调整一下 maven 的 compiler plugin,将 source 设置为你想要的 Java 版本,如 13 , target 和 release 设置为 8 就可以啦。 IntelliJ IDEA 会自动识别,也不需要调整。

  1. <plugin> 
  2.  <groupId>org.apache.maven.plugins</groupId> 
  3.  <artifactId>maven-compiler-plugin</artifactId> 
  4.  <version>3.8.1</version> 
  5.  <configuration> 
  6.  <source>13</source> 
  7.  <target>8</target> 
  8.  <release>8</release> 
  9.  </configuration> 
  10. </plugin> 

这样你就可以愉快地使用介绍的特性啦。

总结

如果有一些特性没有整理,而且非常有用的,大家反馈一下,如 API 的调整等,方便后续同学参考一下。

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读