java 1.8 override_Java @override报错的解决方法

今天在把eclipse工程拷贝到另一个电脑上的时候出现总是@override报错,提示是将@override移除就好了,但是项目中很多这个注解的存在,Java小白的我觉的就算不知道这个编制存在与不存在的区别,但是既然存在了,肯定有他的用处,而且项目中有好多地方存在@override,总不能全部移除吧。就查了一下,就此总结一下

出错原因:

开始以为是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,刷新工程,重新编译。

c37d79e08b2ebcae574ffca7e022f634.png

方法二:(问题解决)

在报错的工程上,鼠标右键选择 Properties-->Java Compiler-->compiler compliance level 中选择 1.6,刷新工程,重新编译

1b09e4528e3454d044dd0350419f4c05.png

扩展:Java 中的覆盖@Override注解 写与不写的一点点理解

一般来说,写与不写没什么区别,JVM可以自识别

写的情况下:即说明子类要覆盖基类的方法,基类必须存在方法

(控制类型public,protected,返回值,参数列表类型)与子类方法完成一致的方法,否则会报错(找不到被Override的方法)。

在不写@Override注解的情况下,当基类存在与子类各种条件都符合的方法是即实现覆盖;如果条件不符合时,则是当成新定义的方法使用。

所以如果想覆盖基类方法时,最好还是写上@Override注解,这样有利于编译器帮助检查错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值