Rozumiem, że aby zachować kompatybilność źródeł, Java nigdy nie wprowadza nowych metod dla publicznych interfejsów, ponieważ powoduje to zerwanie istniejących klientów implementujących interfejsy. Java Release notes stanyJava 6 Source wstecznej kompatybilności i SQL
Generalnie zasada jest następująca, wyjątkiem wszelkich niezgodności wymienionych poniżej:
komunikaty konserwacyjne (takie jak 1.4.1, 1.4.2 ) nie wprowadzić wszelkie nowe funkcje językowe lub interfejsy API. Będą one utrzymywać kompatybilność źródeł z nawzajem.
uwalnia funkcjonalności i główne komunikaty (np 1.3.0, 1.4.0, 5.0) utrzymać w górę, ale nie w dół źródło kompatybilność.
Jednak pakiety java.sql
i javax.sql
nadal się rozwijać i wprowadzać wiele niezgodnych zmian. Na przykład, do następujących wniosków (niekompatybilne zmian wprowadzonych w Java 6):
java.sql.Statement
rozciągajava.sql.Wrapper
wymagające nowego dwa nowe sposoby.java.sql.Statement
wprowadza 3 nowe metodyjava.sql.PreparedStatement
wprowadza 19 nowych metod!java.sql.ResultSet
wprowadza 48 nowych metod!
Czy wiesz, jak i dlaczego te metody zostały dodane? Czy java.sql
jest traktowane inaczej niż reszta platformy? Czy znasz dyskusję/JSR wokół tych dodatków?
Dodawanie metod nie przerywa zgodności w górę, tylko w dół (co jest dozwolone w przypadku wersji głównych, takich jak Java 6). –
Ale typy 'java.sql' to interfejsy, a nie klasy. –