2011-11-30 2 views
2

버전 1.6 이후 Statement 인터페이스에 선언 된 메소드가 세 개 더 있습니다.java.sql.Statement가 이전 버전과의 호환성을 손상시키는 이유는 무엇입니까?

제가 알기로 이것은 자바의 가장 큰 장점 중 하나 인 이전 버전과의 호환성입니다. 내 프로젝트는 jdk 1.5에서 jdk 1.6으로 전환 한 후에 더 이상 컴파일되지 않으며 코드를 변경해야합니다.

이렇게 세 가지 방법 (isPoolable, setPoolable, isClosed)을 추가하는 이유는 무엇입니까?

+2

1.1 이후의 모든 주요 Java 버전에 JDBC API에 메소드가 추가되었습니다. 이것은 새로운 기능이 아닙니다. – skaffman

+0

JDBC 4를 구현하지 않는 JDBC 드라이버를 사용하는 경우에만 사용자에게 영향을 주어서는 안됩니다. 고유 한 JDBC 드라이버를 개발하면 예상되는대로 알 수 있습니다. 5 개 이상의 JDBC 버전이 있습니다. 새로운 방법을 추가합니다. –

답변

6

추가 된 인터페이스 메소드는 인터페이스를 구현하는 경우 문제가됩니다. 당신은 당신 자신의 JDBC 드라이버를 작성하고있다. 이러한 메소드를 사용하는 라이브러리가 이러한 메소드를 구현하지 않는 라이브러리를 호출하면 NoSuchMethodError가 발생합니다.

대부분의 사용 사례가 무해하다고 생각하기 때문에이 방법이 추가 된 것으로 가정합니다.

관련 문제