java1.8override_Java@override报错的解决⽅法
今天在把eclipse⼯程拷贝到另⼀个电脑上的时候出现总是@override报错,提⽰是将@override移除就好了,但是项⽬中很多这个注解的存在,Java⼩⽩的我觉的就算不知道这个编制存在与不存在的区别,但是既然存在了,肯定有他的⽤处,⽽且项⽬中有好多地⽅存在
@override,总不能全部移除吧。就查了⼀下,就此总结⼀下
出错原因:
小白学java有前途吗
开始以为是jar包引⽤的问题,尝试过更改jar包,没有⽤,才知道是jdk的问题,@Override是JDK5就已经有了,但是不⽀持对接⼝的实现,认为这不是Override⽽报错。JDK6修正了这个Bug,⽆论是对⽗类的⽅法覆盖还是对接⼝的实现都可以加上@Override。要解决该问题,⾸先要确保机器上安装了jdk 1.6(其实此处我不确定这个确保问题呢,因为我电脑上只有1.8的版本,但是选择⾥没有1.8,所有我还是按照教程选择了1.6)
⾸先⽅法⼀:(我的⼯程上试过没有⽤呢)
选择eclipse菜单Windows->Preferences-->java->Compiler-->compiler compliance level选择 1.6,刷新⼯程,重新编译。
⽅法⼆:(问题解决)
在报错的⼯程上,⿏标右键选择 Properties-->Java Compiler-->compiler compliance level 中选择 1.6,刷新⼯程,重新编译
扩展:Java 中的覆盖@Override注解 写与不写的⼀点点理解
⼀般来说,写与不写没什么区别,JVM可以⾃识别
写的情况下:即说明⼦类要覆盖基类的⽅法,基类必须存在⽅法
(控制类型public,protected,返回值,参数列表类型)与⼦类⽅法完成⼀致的⽅法,否则会报错(不到被Override的⽅法)。
在不写@Override注解的情况下,当基类存在与⼦类各种条件都符合的⽅法是即实现覆盖;如果条件不符合时,则是当成新定义的⽅法使⽤。
所以如果想覆盖基类⽅法时,最好还是写上@Override注解,这样有利于编译器帮助检查错误

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。