使用接口实现中的 @Override 注释出现错误

9

我使用的是JRE 1.6版本,知道在接口中使用@Override时,会出现JRE 1.5的问题。

我导入了一个新项目(Spring + Maven),但每当覆盖任何接口方法时,Eclipse都会在每个@Override注释上报错。

到目前为止,我尝试过以下事项:

  1. 检查项目和工作区特定的JRE和兼容性级别,设置为1.6版本。
    enter image description here
  2. 检查生成路径中的JRE库,也是相同的。
  3. 在项目结构中将Java版本更改为1.6(不知道是否有帮助)
    enter image description here
  4. Maven清理和安装(到目前为止已经做了一百次)
  5. 禁用注释的错误/警告,仍然没有运气enter image description here
  6. Eclipse重新启动(很傻的事情,但帮了我很多次)
  7. 最后一招是删除所有.setting和.project文件,如果我找不到其他可尝试的方法。

编辑1:
我得到以下错误:

The method XXX of type XXX must override a superclass method.        

编辑2:
代码示例
接口声明

public interface HelperService {   
    public RequisitionTypeDTO getRequisitionTypeDTO(int id) throws Exception;  
}    

实现:

   @Service
   public class HelperServiceImpl implements HelperService{   
   @Override  // Getting error for this line
   public RequisitionTypeDTO getRequisitionTypeDTO(int id) throws Exception{
                         // Bla Bla Bla 
      }  
   }     

编辑3:
尽管出现这些错误,但我仍然能够成功构建和运行我的应用程序。只是不喜欢整个源代码上到处都是红色的错误标志。


3
可能没什么大问题,但既然你排除了其他所有可能性:这些确实是@override注释吗?应该使用大写字母O的@Override - Joachim Sauer
@Ajinkya:注解名称是类名称,因此像其他所有内容一样区分大小写。它本来可能是完全不相关的“override”注解(但即使是这样,也不太可能产生这种错误)。因此,总结一下:这并不重要,但我没有看到任何其他暗示存在问题的迹象。 - Joachim Sauer
抱歉,除非您展示出现了什么错误,否则无法提供帮助。另外,请尝试创建一个新的Java项目,并创建一个实现Runnable接口的类。看看在run()方法实现的@Override上是否仍然会出现错误。 - adarshr
@adarshr:我已经添加了错误详细信息。在其他项目中没有遇到这个错误。 - Ajinkya
@adarshr:错误已经消失。我只是将Java构建器添加到项目中。 - Ajinkya
显示剩余10条评论
5个回答

8

检查接口中的RequisitionTypeDTO是否与实现中的RequisitionTypeDTO是相同的类型(导入不同)。

如果一致,则尝试添加maven-compiler-plugin

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.5.1</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>

请从项目的上下文菜单中选择Maven->更新项目配置...,因为这是设置编译JRE的正确方法。

当然,在Eclipse中尝试使用mvn clean或者Project->清理...

如果一切失败,请创建一个最简代码的新项目,并检查是否存在相同的错误。


感谢您的建议。问题出在应用于项目的构建器上。 - Ajinkya

3

我也遇到过这个问题,而我确实设置了"Java Builder"。经过进一步调查发现,问题并不在于我的"Java Builder"设置,而是我的"编译器兼容级别"设置为1.5而非1.6。


这意味着,这个问题实际上类似于https://dev59.com/V3NA5IYBdhLWcg3wX8rk。 - Raedwald
一样的情况。在POM文件中没有指定Java版本的项目上执行Maven“更新项目”操作会触发更改。 - uberdog

2

发现当前项目没有选择构建器。选择Java构建器,问题迎刃而解。代码上不再出现红色提示。

enter image description here


1
我遇到了一个类似的问题(这是与代码完全正常工作相关的)。
几分钟前,我停止在同一包中看到类(Maven java project in eclipse doesn't see classes in same package),并通过执行Maven -> 更新项目来“修复”该错误。
这将我的编译器级别更改为1.5,并引起了一个新问题,即此主题。
(通过明确更改我的编译器级别来解决)

0

我遇到了同样的错误。 对我来说,问题在于在属性->项目面上没有选择"Java" 即使我的jre和编译器级别设置正确,我仍然有这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接