Java 6源向后兼容性和SQL

前端之家收集整理的这篇文章主要介绍了Java 6源向后兼容性和SQL前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的理解是,为了保持源兼容性,Java从未将新方法引入公共接口,因为这会破坏实现接口的现有客户端. Java Release notes状态

In general,the policy is as follows,
except for any incompatibilities
listed further below:

  • Maintenance releases (such as 1.4.1,
    1.4.2) do not introduce any new language features or APIs. They will
    maintain source-compatibility with
    each other.

  • Functionality releases and major
    releases (such as 1.3.0,1.4.0,5.0)
    maintain upwards but not downwards
    source-compatibility.

然而,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开发人员的以下回复

JDK中针对API的API的一般演进策略是JDK 7等功能版本

>不要破坏二进制兼容性(如JLSv3第13章所定义)
避免引入源不兼容
>管理行为兼容性变化

(对于更多,比您想要阅读的不同类型的兼容性更多见

“Kinds of Compatibility: Source,Binary,and Behavioral”

“Compatibly Evolving BigDecimal”

向接口添加方法是二进制兼容的,但源不兼容,因此它不是通常的.通常,界面越广泛实现,我们越不可能添加方法. JDBC区域是此策略的一个例外,并且使用更宽松的升级规则,但是当用户想要升级到新的JDK版本时,会导致真正的问题.

猜你在找的Java相关文章