我看到JDK7中有相当多的接口发生了变化,例如,添加了ResultSet.getObject(String, Class<T>)。我对这种不兼容的变化感到非常惊讶,特别是因为我从来没有见过它被讨论过。
我想当我使用JAR文件而不是尝试自己编译项目时,不兼容性并不重要,对吗?
同时支持JDK6和JDK7的正确方式是什么?仅仅实现新方法而从不使用它们就足够了吗?
发布于 2011-10-08 04:06:58
看起来
<T> T getObject(int columnIndex, Class<T> type) throws SQLException和
<T> T getObject(String columnLabel, Class<T> type) throws SQLException是在1.7中引入的。(至少它在the documentation中写着“从1.7开始”)。我同意,这是一种令人讨厌的变化。
java.sql接口有更多的变化。例如,Connection在1.7中获得了5个新方法。希望这些突破性的变化是值得的。
只是简单地实现新方法,而从不使用它们就足够了?
可以,但要避免在接口的早期版本中不存在的方法上使用@Overrides注释。
发布于 2011-10-08 04:06:25
我会读ResultSet javadoc,而不是Eclipse。
发布于 2011-10-08 04:30:37
您可以预先实现这些方法,但不能使用@Override注释。看起来Java7没有定义任何新的类型,这会阻止你在Java6中实现新的方法,但情况并不总是这样(例如,在Java1.4中使用了SavePoint,但还有很多其他的)。
https://stackoverflow.com/questions/7692320
复制相似问题