Java JEP12:预览语言和虚拟机功能-可能的用法

Java JEP12:预览语言和虚拟机功能-可能的用法,java,java-11,jep,Java,Java 11,Jep,我偶然发现了JDK 12的搜索结果,对此很感兴趣 摘要:预览语言或虚拟机功能是Java的新功能 完全指定、完全实现且 短暂的它在JDK特性版本中提供,以激发 基于实际使用的开发者反馈;这可能导致它 在未来的JavaSE平台中成为永久性的 在回答这一问题之后,我只想问以下问题: 你能提供这个JEP的使用示例吗?在代码中加入新的语言和/或VM特性 这是否意味着新功能的使用现在将像下载一个支持jar并将其“插入”到我们的项目中一样简单 不是。这是关于在Java语言和JVM中启用“预览”功能,以便在

我偶然发现了JDK 12的搜索结果,对此很感兴趣

摘要:预览语言或虚拟机功能是Java的新功能 完全指定、完全实现且 短暂的它在JDK特性版本中提供,以激发 基于实际使用的开发者反馈;这可能导致它 在未来的JavaSE平台中成为永久性的

在回答这一问题之后,我只想问以下问题:

  • 你能提供这个JEP的使用示例吗?在代码中加入新的语言和/或VM特性
这是否意味着新功能的使用现在将像下载一个支持jar并将其“插入”到我们的项目中一样简单

不是。这是关于在Java语言和JVM中启用“预览”功能,以便在最终确定某个功能之前,该功能可以获得更广泛的曝光和反馈(使用合适的选项)。(如果您可以通过放入一个JAR文件来启用一个实验/预览特性,那么这个机制就没有必要了……)

事实上,通过JEP中描述的“预览”机制:

  • 任何支持预览功能的代码都已经是JRE/JDK的一部分,并且
  • 这些特性可以通过为
    javac
    java
    命令提供额外的命令行选项来启用
任何人都可以分享这个JEP的使用经验吗?实际代码

从Java11开始,编译器和VM将支持预览特性,我们可能会在Java12中看到第一个预览特性。查看早期access构建发行说明,它们没有明确提到任何“预览”功能。然而

现在“体验”还为时过早。(我不知道他们会告诉你什么。JEP-12机制是启用功能的机制……而不是功能本身。)

我还研究了与此JEP相关的JIRA问题,似乎此功能目前已完成,但尚未解决

这是一个“保护伞”问题(如果这是正确的术语)。深入到相关问题列表,您将看到其中两个问题仍未解决。然而,三个相关的问题已经解决,所以看来JEP-12支持将使其成为Java11


更新:2019/08/22-关于改进
javac
编译器消息,现在只有一个相对较小的问题。

我可能会在这一点上有所不同,并且会投赞成票,对将来可以做的事情持乐观态度,比如简单地添加一个单独下载的功能模块(.JMOD)然后可以简单地打开标志以使该特性可见。所有这些都是高度假设的!。。。这里是对…孵化功能的变更集的参考,这将很有意义。原始字符串文字(JEP 326)和开关表达式(JEP 325)将被建议作为Java 12的预览功能。@nullpointer不,这不是它的工作方式。语言和VM特征将无法通过JMODs或任何其他手段加载。@ BrangoEtz,我认为你的话是一个真理的来源,而我是温和地为JDK的发展过程可视化的动态框架。无论如何,谢谢您的确认。:)@纳曼-我应该指出,我并没有发表意见。我读了JEP,并转达了它明确的内容。这一点也不含糊。