1
9
我得到了Sun开发人员的以下回复 对于JDK 7这样的功能版本,JDK中API的一般演进策略是
(更多信息,比您想阅读的关于不同类型兼容性的更多信息,请参见 "Kinds of Compatibility: Source, Binary, and Behavioral" 和 "Compatibly Evolving BigDecimal" 向接口添加方法是二进制的 兼容的 但是 来源 不兼容,所以通常不这样做。一般来说,一个接口实现得越广泛,我们向它添加方法的可能性就越小。JDBC区域是这个策略的一个例外,它使用更宽松的升级规则,但是当人们想要升级到新的JDK版本时,这确实会导致真正的问题。 |
2
4
注意,添加新方法只会破坏源代码的兼容性,已经编译了
|
3
1
他们可能假设实现这些方法的数据库驱动程序供应商保持最新的Java运行时,并且最好引入有用的新方法并暂时打破兼容性。 当然,他们本可以设计得更好,这样就不需要破坏兼容性了。 |
4
1
Sun从不保证版本之间的源代码兼容性,只保证二进制兼容性。最常见的例子是,包含“assert”或“enum”标识符的源代码不会在JDK 1.4(对于assert)或1.5+(对于enum)下编译,但现有的.class文件仍将在这些较新的jvm下运行。 您可以尝试使用-源标志来在较新的JVM下编译旧的.java文件,但是如果依赖于已更改的JVM类,则仍然可能遇到问题。 |
Samuel Ludwig · 执行查询[重复]后立即关闭结果集 6 年前 |
Peter · 为什么在生成的jar中找不到jdbc驱动程序?[副本] 6 年前 |
Vince · 是否遍历DataProvider的JDBC结果集? 6 年前 |
Kask · spark将字符串转换为时间戳类型 6 年前 |
watery · 等待jdbc出站通道适配器完成,然后再进行进一步处理 6 年前 |