除了引入 'assert' 关键字这一可能广为人知的例外,Java 语言规范中是否曾经发生过变化,导致旧代码不再与 JDK 的新源级别兼容?
到目前为止的总结(非常感谢您的评论):
在升级到更高版本时,如果代码使用在更高版本的 Java 语言规范 (JLS) 中引入的关键字之一进行声明,“旧”Java 代码可能会导致编译错误:
- 断言
- 枚举
- 严格的fp
strictfp
关键词。assert
关键词。enum
关键词。我相信这_
在 Java 9 中被指定为“关键字”。请参阅https://blogs.oracle.com/sundararajan/underscore-is-a-keyword-in-java-9%2c-use-this-script-to-检查你的代码
Java 10 做var
了一个关键字。它仍然是一个有效的变量名,但一个非法的类名。