勘误表Java语言规范第3版

我广泛使用JLS作为学习和教学资源,但我注意到它有一些错误。

有简单的错别字(例如JLS 5.1.4 “convesions”),但也有一些我认为是非常严重的错误。

例如, JLS 18.1 Java编程语言的语法应该是Java语言语法的权威参考,但它包含一个永远不会被使用的生产规则! (例如MoreStatementExpressions )。 当然,这是给定语法其他部分中更严重错误的标志,对吧?

那么第三版是否有勘误表? 会有吗? 我们应该向Sun / Oracle发送错误吗? 会不会有第4版?

我能找到的最好的是“Java SE 7的JSR 901(Java(tm)语言规范的维护评论”) 。


但是,OP关注的问题并不严重……

当然,这是给定语法其他部分中更严重错误的标志,对吧?

我会对此说“错”。 未使用的产品只是印刷/编辑错误。 它对Java语法的含义没有任何影响。


FWIW:Oracle的主要JLS页面没有提及JSR 901修订工作(显然已经完成了!),并且提供了有关JLS的反馈的链接被破坏了。

我也被JLS第18章中的语法问题以及JLS中其他地方的问题所困扰。 尽管许多Java程序员可能不会受到它们的影响,但在构建编译器或程序分析工具时,这些并不是一件小事。

JLS的许多问题已在最新版本的JLS(“JLS,Java SE版”或非正式的“JLS第4版”)中得到修复。 特别是,第18章(Java语法)已经完全修改和重组。

您可以在Java SE规范下载页面找到最新的JLS( 直接链接到JLS PDF )。

更新2012年2月18日:如https://blogs.oracle.com/abuckley/en_US/entry/jls7_and_jvms7_online所述,现在可以在http:// docs上获得Java语言规范和JVM规范的Java SE 7版本。 .oracle.com / javase / specs /以PDF和HTML格式。