Java 8:功能预览


介绍

Oracle通过六个月的发行模型来加速语言开发过程,从而对Java编程进行了多项改进。从版本12开始,使用switch表达式和文本块,使用所谓的功能预览过程引入了一种用于启动新功能的新型方法。在实践中,引入了一项新功能,以便可以将其用作实验目的的预览。这样,开发人员可以对其进行测试,并向Oracle提供反馈,从而可以在将来的版本中对其进行改进。

启用功能预览

为了使用新功能预览,必须在编译和运行时都指定一些命令行选项。

特别是,您需要--enable-preview在编译时指定选项来启用使用功能预览的代码,并-source指定要为其启用它的Java版本的选项(以粗体突出显示)。例如:

javac-- enable-preview -source 15 RecordDemo.java

除了-source选项,-release还可以等效地指定选项:

javac--enable-preview -release 15 RecordDemo.java

要运行使用预览功能的应用程序,您只需要启用以下预览功能:

java--enable-preview RecordDemo

该javadoc的和jshell工具还支持--enable-preview选项。

至于我们通常用于编码的各种开发工具(Eclipse,Netbeans,IntelliJ,Maven等),需要不断进行更新和错误修复,因此,我们必须阅读相应的文档。通常,这涉及更改项目设置,指定我们已经描述的编译和运行时选项。

例子 switch在正式成为版本14的标准功能之前,该表达式一直是Java 12和13中的功能预览。实际上,如果我们要使用JDK 13版进行编译,则以下使用该switch表达式的类:

2.png

我们将收到以下编译时错误:

1.png

为了正确地编译包含switch表达式的此类,您需要在上一节中介绍的命令行选项中指定。特别是--enable-preview要启用功能预览,并-source 13指定我们要为其启用的Java版本:

javac--enable-preview -source 13 SeasonSwitchExpressionEnumTest.java

除了-source选项之外,-release还可以等效地指定选项:

javac--enable-preview -release 13 SeasonSwitchExpressionEnumTest.java

相反,要启动该示例,您只需要启用预览功能:

java--enable-preview SeasonSwitchExpressionEnumTest

它为什么如此重要?

在Java版本12中,当将switch表达式作为功能预览引入时,使用了关键字break而不是单词yield。仅在版本13中yield被替换break。实际上,此功能预览的大多数反馈都判断是否使用了break误导性关键字,因为该关键字已在其他情况下使用。这证明了功能预览过程的重要性。实际上,Java开发人员能够更加积极地参与新功能的开发过程。通过功能预览过程,Java更有可能成为开发人员越来越喜欢的一种语言,因为他们将能够在功能正式发布之前发表自己的意见。

此外,除了switch我们在先前示例中提到的表达式之外,此基本路径还引入了其他基本功能。其中包括例如,instanceof文本块,sealed类型甚至record类型的模式匹配。

如何向Oracle发送反馈

通过在OpenJDK邮件列表中的讨论中发布,可以将有关功能预览的反馈发送给Oracle 。不幸的是,这不是一个非常直观的过程。特别是,要查找有关特定功能预览的讨论,您必须转到列出正在使用的JDK版本的新功能的页面,单击要返回反馈的功能预览的链接,并将标题为“讨论”的字符串解释为电子邮件地址。然后,您可以将您的反馈发送到该电子邮件地址。

例如,如果您使用的是版本15,并且想发送有关sealed类型功能预览的反馈,则需要转到https://openjdk.java.net/projects/jdk/15(要更改版本,只需更改数字“ 15'到所需的版本号)。在列表中找到“密封的类(预览)”链接,然后单击它。在打开的页面的标题下,您将找到一个信息列表,其中包括一个讨论项目,在此情况下,后面紧跟字符串'openjdk dot java dot net的amber dash dev(见图1)。

1608741004562.png

图1:了解向其发送反馈的电子邮件地址。

不幸的是,这不是一个链接,而是一个可以解释为的字符串。实际上,您可以将包含反馈的电子邮件发送到该地址。特别是,要订阅项目邮件列表,可以转到以下地址:http : //mail.openjdk.java.net/mailman/listinfo/amber-dev。

如果您只想报告错误,则可以直接单击Java Bug Database的链接。

结论

在这篇简短的文章中,我们已经了解了如何启用功能预览以及如何使用将在Java的下一版本中引入的功能,甚至可以提供反馈。我们还理解了为什么预览很重要,以及现在引入新功能的过程如何更加民主,因为任何人都可以为语言的标准化做出贡献。这将有助于Java成为一种越来越有趣的语言。


原文链接:http://codingdict.com/