Java源代码通常是向前兼容的。据我所知,在Java8之前,已编译的类和源代码都与后来的JDK/JVM版本前向兼容。[更新:这是不正确的,请参阅下面的注释re'enum'等。]但是,随着Java8中添加了默认方法,这似乎不再是这种情况。例如,我一直在使用的一个库有一个java.util.List的实现。其中包括Listsort().此方法返回已排序列表内容的副本。该库作为jar文件依赖项部署,在使用JDK1.8构建的项目中运行良好。但是,后来我有机会使用JDK1.8重新编译库本身,并且我发现库不再编译:List-用自己的sort()实现类方法现在与Java8java.util.List
Java源代码通常是向前兼容的。据我所知,在Java8之前,已编译的类和源代码都与后来的JDK/JVM版本前向兼容。[更新:这是不正确的,请参阅下面的注释re'enum'等。]但是,随着Java8中添加了默认方法,这似乎不再是这种情况。例如,我一直在使用的一个库有一个java.util.List的实现。其中包括Listsort().此方法返回已排序列表内容的副本。该库作为jar文件依赖项部署,在使用JDK1.8构建的项目中运行良好。但是,后来我有机会使用JDK1.8重新编译库本身,并且我发现库不再编译:List-用自己的sort()实现类方法现在与Java8java.util.List