我的理解是为了保持源代码的兼容性,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.sql
类型是接口,而不是类。 - John Calsbeek