java - eclipse导入项目错误,显示'Must Override a Superclass Method'

  显示原文与译文双语对照的内容

任何时候我得re-import项目分成 Eclipse ( 如果我重新安装 Eclipse,或者更改了项目的位置),几乎所有没有正确格式化的覆盖方法,导致错误 The method must override a superclass method

值得注意的是,在Android项目中,不管原因是什么,方法参数值都不总是被填充,所以我必须亲自手动填充它们。 举个例子:


list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

//These arguments have their correct names
 public void onCreateContextMenu(ContextMenu menu, View v, 
 ContextMenuInfo menuInfo) { 
 }

});

将以如下方式填充:


list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

//This methods arguments were not automatically provided 
 public void onCreateContextMenu(ContextMenu arg1, View arg2,
 ContextMenuInfo arg3) {
 }

});

奇怪的是,如果我删除了代码,并让 Eclipse 自动重新创建方法,它使用了相同的参数名,所以我不知道问题所在,那么我就不知道这个方法是什么。

手工重新创建所有重写的方法变得相当痛苦。 如果有人能解释为什么发生这种情况或者如何修复它。 我很高兴。

可能是由于我正在格式化方法,这些方法在另一个方法的参数内?

时间:

Eclipse 默认为 Java 1.5,并且你有实现接口方法( 在 Java 1.6中可以用 @Override, 注释,但在 Java 1.5中只能应用到重写超类方法的方法)的类。

转到你的项目/ide首选项,并将java编译器级别设置为 1.6,并确保你选择了 JRE 1.6来从 Eclipse 执行你的程序。

使用 Eclipse Galileo,你可以转到 Eclipse -> 首选项菜单项,然后在对话框中选择Java和编译器。

现在它仍然可以在 1.6上显示编译器的遵从性级别,但仍然可以看到这个问题。 现在,选择链接"配置项目特定设置。"。 ",在那里你将看到项目设置为 1.5,现在改变这个 1.6. 你需要对所有受影响的项目执行这里操作。

这个拜占庭菜单/对话框界面是典型的Eclipse 用户界面设计。

如果其他人同时尝试了alphazero和paul的方法,但仍然没有工作。

对我来说, Eclipse'缓存'编译错误,即使做一个项目> 清洁。

我不得不自动取消项目> 生成,然后执行项目> 清理,然后重新生成。

,如果有疑问,请尝试重新启动 Eclipse 。 这可以解决许多棘手的无法解释的错误。

要解决这里问题,请转到项目属性-> Java编译器-> 选择编译器合规性级别 1.6 -> 应用。

我的案例中的所有解决方案都没有工作。

我不得不删除项目工作区中的文件:

  • 项目
  • 类路径

和文件夹:

  • 设置

然后我从一个类似的项目中复制了那些。 这修好了我的broken 。

当然,在尝试以前的替代方法之前不要使用这里方法。

保罗的回答部分为我工作。 我还有一个错误。 因此,除了这一点,我还不得不转到 Properties-> 项目方面,并将Java版本从 1.5设置到 1.6.

这可能有帮助。

这是我第二次遇到这个问题。 第一次根据alphazero的推荐工作。 但在第二次我设置为 1.6的时候,它不像'高速缓存'那样工作在清理和重建之后就会出现这个错误。

尝试 switch'自动生成'Rollin_s说——> 错误还在这里!

所以我从软件包资源管理器中删除了问题项目( 已经设置为 1.6 ) 并再次导入它-> 它启动一个重建,这次没有错误

希望这个帮助某人

在我的例子中,没有上面的解决方案。 我必须将我的源代码签出到另一个文件夹。 从 Eclipse 选择文件> switch 工作区> 其他。。 然后将代码导入新工作区。 在那之后。

转到 Windows> 首选项-> Java -> 编译器-> 选择编译器合规性级别 1.6 ( 你想要哪个版本) -> Apply-> 确定。 现在它的工作。

修复必须重写超类方法错误不困难。你只需要将Java源版本更改为 1.6,因为从 Java 1.6 @Override 注释可以与接口方法一起使用。 要将源版本更改为 1.6,请按以下步骤操作:

  1. 选择项目,右键单击,属性
  2. 选择Java编译器并选中复选框"启用项目特定设置""
  3. 现在将编译器合规性级别设为 1.6
  4. 应用改动
...