首页 > 代码库 > JDK 1.5 与 1.6 中的@Override
JDK 1.5 与 1.6 中的@Override
遇到一个奇怪的问题:最近在维护一个老项目,添加了一点新功能,结果在本地打包上传到生产环境,报java.lang.UnsupportedClassVersionError: Bad version number in .class file。
当然一看到这个错误我就知道是因为JDK的版本不一致。我查看开发环境打包的JDK是1.6,而生产环境是JDK 1.5;我就安装了一个JDK 1.5,重新用1.5打包,打包成功,上传到生产环境。结果还是一样的异常。这我就纳闷了:这期间我折腾了很久,把JDK 1.6 卸载了,怕他有影响,结果还是没用。
后来我一想,是不是新添加的代码在1.5中不兼容,实现接口的方法上也加上了@Override注解(IDE eclipse自动帮助加上的);我把实现接口方法上的注解去掉用JDK 1.6 打包上传到生产环境,竟然正常了!
原来JDK 1.6 和 1.6@Override上在有这么一点细微的差别:在方法的继承(类的继承)上使用@Override都是没问题,但在方法的实现(接口的实现)上使用@Override要在1.6或更高的版本上才可以。如果没有使用什么特别的功能JDK一般还是向后兼容的。
@Override促使我们在编译期发现错误,让我们明确的知道自己要实现或覆盖的方法,使代码更规范。
JDK 1.5 与 1.6 中的@Override
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。