当我们的jar附带的类被添加到Java标准库时会发生什么?

soc*_*soc 4 java time compatibility java-8 jsr310

我正在考虑将JSR-310的一小部分添加javax.time.Duration到我们的库中.

这目前完美无缺.

但JSR-310计划集成在Java 8中!在Java 8上执行我们的应用程序时,如果javax.time.Duration标准库中有一个类,并且我们的jar文件附带了相同的类,会发生什么?

其中一个课程会被默默忽略吗?(哪一个?)当Java 8 VM尝试从我们的库加载类时会出现错误吗?

我需要注意哪些兼容性问题?

Pet*_*rey 6

JVM遵循类路径来确定要加载的类.如果有多个,则忽略后面的类.

对于JVM本身包含的类,这些是在类路径之前搜索的bootclasspath的一部分.

除非API发生重大变化,否则您不应该注意到差异,并且Java 8会有效地忽略您的额外JAR.