Java14 已于 2020 年 3 月 17 号发布,官方特性解读在这里:
https://openjdk.java.net/projects/jdk/14/
以下是个人对于特性的中文式理解;
Pattern Matching for instanceof (Preview)
原来的 Java 语法 instanceof 判断之后,还需要进行类型的显示转换,才能使用实际类的一些方法,如下所示:
if (obj instanceof String) {
String s = (String) obj;
// use s
}
这里做了一个增强,其实用过 kotlin 的同学就马上明白了,语法基本上类似,不过 kotlin 的实现可能还更加平顺:
if (!(obj instanceof String s)) {
… s.contains(…) …
} else {
… s.contains(…) …
}
Packaging Tool
这里主要是提供一种像安装程序的方式类似的安装体验,针对之前可运行的 .jar 文件,提供一种面向不同 os 的打包格式的工具,这个工具可以支持 Windows 下的 msi 和 exe 格式、 linux 下的 dep 和 rpm 格式以及 Mac 下的 pkg 和 dmg 格式,这里除了打包之后有一个通用的系统的安装体验之外,还能将一些 main 函数启动的初始入参固化到打包之后的文件中。
整体打包的命令会根据是否是做了模块化有所区别,分别是:
jpackage --name myapp --input lib --main-jar main.jar
以及