Обратная совместимость с Java 6 Source и SQL
Насколько я понимаю, для обеспечения совместимости с исходным кодом 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
продолжаетсяjava.sql.Wrapper
, требующий новых двух новых методов.java.sql.Statement
вводит 3 новых методаjava.sql.PreparedStatement
вводит 19 новых методов!java.sql.ResultSet
вводит 48 новых методов!Знаете ли вы, как и почему эти методы были добавлены? Являетсяjava.sql
лечиться по-другому от остальной платформы? Знаете ли вы об обсуждении / JSR вокруг этих дополнений?