我的理解是,为了保持源代码兼容性,Java 从不向公共接口引入新方法,因为这会破坏实现接口的现有客户端。 Java 发行说明状态
一般来说,该政策如下,除了下面进一步列出的任何不兼容性:
维护版本(例如 1.4.1、1.4.2)不引入任何新的语言功能或 API。它们将保持彼此的源兼容性。
功能版本和主要版本(例如 1.3.0、1.4.0、5.0)保持向上但不向下的源兼容性。
然而,这些包java.sql
并javax.sql
继续发展并引入了许多不兼容的变化。例如,我注意到以下不兼容的更改(在 Java 6 中引入):
java.sql.Statement
extendsjava.sql.Wrapper
,需要新的两个新方法。java.sql.Statement
引入 3 种新方法java.sql.PreparedStatement
介绍19种新方法!java.sql.ResultSet
介绍48种新方法!
你知道这些方法是如何以及为什么被添加的吗?是否java.sql
受到与平台其他部分不同的对待?你知道围绕这些添加的讨论/JSR 吗?