Действительно ли в JDK7 существует `ResultSet.getObject (String, Class <T>)? - PullRequest
4 голосов
/ 08 октября 2011

Я вижу довольно много измененных интерфейсов в JDK7, например, добавление ResultSet.getObject(String, Class<T>).Я был очень удивлен этим несовместимым изменением, особенно потому, что я никогда не видел его обсуждаемым.

Я полагаю, что несовместимость не имеет значения, когда я использую файл JAR вместо того, чтобы пытаться самостоятельно скомпилировать проект, верно?

Как правильно поддерживать JDK6 и JDK7?Достаточно ли просто реализовать новые методы и никогда не использовать их?

Ответы [ 3 ]

2 голосов
/ 08 октября 2011

Кажется

<T> T getObject(int columnIndex, Class<T> type) throws SQLException

и

<T> T getObject(String columnLabel,  Class<T> type) throws SQLException

были введены в 1,7. (По крайней мере, это говорит «С 1.7») в документации . Я согласен, это какая-то неприятная перемена.

В интерфейсах java.sql больше изменений. Connection например, получил 5 новых методов в 1.7. Надеюсь, что эти изменения стоят того.

Достаточно ли просто реализовать новые методы и никогда не использовать их?

Да, но избегайте использования аннотации @Overrides для методов, отсутствующих в более ранней версии интерфейса.

0 голосов
/ 08 октября 2011

Вы можете предварительно реализовать эти методы, но вы не сможете использовать аннотацию @Override.Похоже, что Java 7 не определяет никаких новых типов, которые бы помешали вам реализовать новые методы в Java 6, но это не всегда так (например, использование SavePoint в Java 1.4, но есть многодругие).

0 голосов
/ 08 октября 2011

Вместо Eclipse я прочитал бы ResultSet javadoc .

...