【问题标题】:Error on @Override annotation with interface implementation带有接口实现的@Override 注释错误
【发布时间】:2012-06-12 10:31:26
【问题描述】:

我正在使用 JRE 1.6 版本,并且在使用带有接口的 @Override 时发现了 JRE 1.5 的问题。

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

到目前为止我尝试过的事情

  1. 检查项目和工作区特定的 JRE 和合规级别,它设置为 1.6 版本。
  2. 在构建路径上检查了 JRE 库,它也是一样的。
  3. 将项目方面的 Java 版本更改为 1.6(不知道是否有帮助)
  4. Maven 是否进行了清理和安装(至今已安装了数百次)
  5. 注释的禁用错误/警告仍然没有运气
  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:
无论此错误如何,我都能够成功构建和运行我的应用程序。只是对源代码中的红色错误标志不满意。

【问题讨论】:

  • 这可能没什么,但既然你排除了其他一切:那些真的是@override 注释吗?它应该@Override,大写O。
  • @JoachimSauer:是的,O。请告诉我这是怎么回事?
  • @Ajinkya:注解名称是类名,因此它们与其他所有内容一样区分大小写。它可能是一些完全不相关的override 注释(但即使它不太可能产生这类错误)。总结一下:这无关紧要,但我没有看到任何其他暗示问题的地方。
  • 对不起,除非您显示您遇到的错误是什么,否则无法提供帮助。另外,尝试创建一个新的 Java 项目并创建一个实现 Runnable 的类。看看你是否仍然在 @Override 上遇到 run() 方法实现的错误。
  • @adarshr:我添加了错误详细信息。其他项目未出现此错误。

标签: java eclipse annotations


【解决方案1】:

检查接口中的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->Update project configuration... 来自项目的上下文菜单 - 因为这是您应该设置编译 jre 的方式。

当然可以尝试mvn clean,在 Eclipse 中 Project->Clean...

如果一切都失败了,用最少的代码创建一个新的简单项目并检查是否有同样的错误。

【讨论】:

  • 感谢您的建议。问题在于应用于项目的构建器。
【解决方案2】:

实现没有为当前项目选择生成器。选择Java Builder 和繁荣。代码中不再有危险信号。

【讨论】:

    【解决方案3】:

    我也得到了这个,而且我确实有一个“Java Builder”集。进一步调查表明问题在于我的“编译器合规级别”设置为 1.5 而不是 1.6。

    【讨论】:

    【解决方案4】:

    我遇到了类似的问题(代码运行良好)。

    几分钟前,我不再看到同一个包 (Maven java project in eclipse doesn't see classes in same package) 中的类,并通过执行 Maven -> 更新项目“修复”了该错误。

    这将我的编译器级别更改为 1.5 并导致了一个新问题,即这个主题

    (通过显式更改我的编译器级别来修复)

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        猜你喜欢
        • 2010-09-18
        • 1970-01-01
        • 2011-06-27
        • 1970-01-01
        • 2010-10-19
        • 2019-01-18
        • 1970-01-01
        • 2012-05-17
        • 2021-03-20
        相关资源
        最近更新 更多