not*_*oop 9 java sql jdbc backwards-compatibility
我的理解是,为了保持源兼容性,Java从不向公共接口引入新方法,因为这会破坏实现接口的现有客户端. Java Release指出了各州
一般而言,该政策如下,但下列进一步列出的任何不兼容性除外:
维护版本(例如1.4.1,1.4.2)不会引入任何新的语言功能或API.它们将保持彼此的源兼容性.
功能发布和主要版本(例如1.3.0,1.4.0,5.0)保持向上但不向下兼容源.
然而,包java.sql和javax.sql继续发展并引入许多不兼容的变化.例如,我注意到以下不兼容的更改(在Java 6中引入):
java.sql.Statement扩展java.sql.Wrapper,需要新的两种新方法.java.sql.Statement 介绍了3种新方法java.sql.PreparedStatement 介绍了19种新方法!java.sql.ResultSet 介绍48种新方法!你知道这些方法是如何以及为什么被添加的?是否java.sql与平台的其他部分区别对待?你知道关于这些新增内容的讨论/ JSR吗?
我收到了Sun Developer的以下回复
JDK中用于JDK 7的功能发布的API的一般演化策略是
(有关更多信息,请阅读有关不同兼容性的内容.)
"各种兼容性:来源,二元和行为" 和 "兼容进化的BigDecimal"
向接口添加方法是二进制兼容的,但源不兼容,因此通常不会这样做.通常,接口实现得越广泛,我们就越不可能向其添加方法.JDBC区域是此策略的一个例外,它使用更宽松的升级规则,但当人们想要升级到新的JDK版本时,这确实会引起真正的问题.
| 归档时间: |
|
| 查看次数: |
1931 次 |
| 最近记录: |