【发布时间】:2013-05-12 10:27:43
【问题描述】:
除了引入“assert”关键字这一可能广为人知的例外情况外,Java 语言规范是否曾经发生过变化,导致旧代码不再与新的 JDK 源代码级别兼容?
到目前为止的总结(非常感谢 cmets):
“旧”Java 代码在升级到更高版本时可能会导致编译错误,如果代码使用在更高版本的 Java 语言规范 (JLS) 中引入的关键字之一进行声明:
- 断言
- 枚举
- strictfp
【问题讨论】:
-
枚举也浮现在脑海中。
-
strictfp。在 1.2 之前是默认的
-
@Dima Goltsman,nio 没有引入任何 语言 更改。
assert和enum是关键字,因此它们的介绍破坏了使用这些词作为标识符的旧代码。例如来自 Jakarta Commons 的enums库。 -
创建了总结的答案,目前真的想不出其他任何东西(Java 的优点)。 @javadeveloper 更改覆盖行为并没有破坏兼容性。