【发布时间】:2016-06-24 02:34:20
【问题描述】:
我正在研究源不兼容和行为不兼容之间的区别,但我无法真正理解。有人能解释一下吗
例如,如果 Java 8 和 Java 7 之间存在源不兼容,这是否意味着尽管在 Java 8 中运行具有这种不兼容的 Java 7 编译代码可以正常工作,但如果我使用 Java 8 重新编译该代码,我会出现错误?
【问题讨论】:
-
java 7 字节码可以在 java 8 jre 中运行。 java 8 字节码无法在 java 7 jre 中运行
-
例如,如果 Java 8 和 Java 7 之间存在源不兼容,这是否意味着尽管在 Java 8 中运行具有这种不兼容性的 Java 7 编译代码可以正常工作,但如果我重新编译该代码Java 8,我会得到一个错误?
-
如果您的目标是 1.8 字节码,即使您不使用任何 java 8 功能,您也无法在 1.7 jre 中运行该 jar
-
@beresfordt OP 询问相反的方向。
-
不同种类兼容性的定义,在 JDK 的上下文中:blogs.oracle.com/darcy/entry/kinds_of_compatibility