文章出处:http://www.cnblogs.com/mao2080/
1、问题描述
当类实现接口后,点击自动实现接口方法时,会自动加上@override,但由于编译环境文件有错误,提示Remove '@override' annotation,网上找了些方法只能临时解决,不能彻底解决问题。比如修改:
1、Project->Properties->Project Facets->Java 1.7
2、Project->Properties->Java Compiler 1.7
当刷新maven(Alt+F5)项目时,这些修改的又回到了初始状态。
有时候Java的Eclipse工程换一台电脑后编译总是@override报错,把@override去掉就好了,但不能从根本上解决问题,因为有时候有@override的地方超级多。
这是jdk的问题,@Override是JDK5就已经有了,但是不支持对接口的实现,认为这不是Override而报错。JDK6修正了这个Bug,无论是对父类的方法覆盖还是对接口的实现都可以加上@Override。
要解决该问题,首先要确保机器上安装了jdk 1.6,
然后,选择eclipse菜单Windows->Preferences-->java->Compiler-->compiler compliance level选择 1.6,刷新工程,重新编译。
如果问题还没解决,就在报错的工程上,鼠标右键选择 Properties-->Java Compiler-->compiler compliance level 中选择 1.6,刷新工程,重新编译。
2、解决方法
在pom.xml中添加如下配置,然后右键Maven->Update project:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<
build
>
<
plugins
>
<!-- jdk版本号 -->
<
plugin
>
<
groupId
>org.apache.maven.plugins</
groupId
>
<
artifactId
>maven-compiler-plugin</
artifactId
>
<
configuration
>
<
source
>1.7</
source
>
<
target
>1.7</
target
>
<
encoding
>UTF-8</
encoding
>
</
configuration
>
</
plugin
>
</
plugins
>
</
build
>
|
有时候Java的Eclipse工程换一台电脑后编译总是@override报错,把@override去掉就好了,但不能从根本上解决问题,因为有时候有@override的地方超级多。
这是jdk的问题,@Override是JDK5就已经有了,但是不支持对接口的实现,认为这不是Override而报错。JDK6修正了这个Bug,无论是对父类的方法覆盖还是对接口的实现都可以加上@Override。
要解决该问题,首先要确保机器上安装了jdk 1.6,
然后,选择eclipse菜单Windows->Preferences-->java->Compiler-->compiler compliance level选择 1.7,刷新工程,重新编译。
如果问题还没解决,就在报错的工程上,鼠标右键选择 Properties-->Java Compiler-->compiler compliance level 中选择 1.7,刷新工程,重新编译。