【发布时间】:2009-08-11 16:27:38
【问题描述】:
我的理解是,为了保持源代码兼容性,Java 从不向公共接口引入新方法,因为这会破坏实现接口的现有客户端。 Java Release notes 状态
总的来说,政策如下, 除了任何不兼容 下面进一步列出:
维护版本(例如 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 吗?
【问题讨论】:
-
添加方法不会破坏向上的兼容性,只会破坏向下的兼容性(主要版本允许这样做,如 Java 6)。
-
但是
java.sql类型是接口,而不是类。
标签: java sql jdbc backwards-compatibility