Tengo entendido que para mantener la compatibilidad de fuentes, Java nunca introduce nuevos métodos a las interfaces públicas, ya que eso rompe los clientes existentes que implementan las interfaces. Java Release notes estadosCompatibilidad con versiones anteriores de Java 6 Source y SQL
En general, la política es el siguiente, excepto por posibles incompatibilidades enumeradas más adelante:
versiones de mantenimiento (tales como 1.4.1, 1.4.2 ) no lo hacen introducir cualquier nueva característica de idioma o API. Contendrán compatibilidad de origen con entre sí.
comunicados de funcionalidad y principales comunicados (como 1.3.0, 1.4.0, 5.0) mantienen hacia arriba, pero no hacia abajo fuente-compatibilidad.
Sin embargo, los paquetes java.sql
y javax.sql
siguen evolucionando e introducir muchos cambios incompatibles. Por ejemplo, he notado los siguientes cambios incompatibles (introducidas en Java 6):
java.sql.Statement
extiendejava.sql.Wrapper
, lo que requiere nuevos dos nuevos métodos.java.sql.Statement
presenta 3 nuevos métodosjava.sql.PreparedStatement
presenta 19 métodos nuevos!java.sql.ResultSet
presenta 48 nuevos métodos!
¿Sabes cómo y por qué se agregaron estos métodos? ¿Se trata java.sql
de manera diferente al resto de la plataforma? ¿Conoces la discusión/JSR sobre estas adiciones?
Agregar métodos no interrumpe la compatibilidad hacia arriba, solo hacia abajo (lo cual está permitido para versiones principales, como Java 6). –
Pero los tipos 'java.sql' son interfaces, no clases. –