将项目导入Eclipse后必须覆盖超类方法错误

每当我必须将我的项目重新导入Eclipse时(如果我重新安装了Eclipse,或者更改了项目的位置),我覆盖的方法中的几乎所有格式不正确,导致错误:

方法必须重写超类方法

值得注意的是,无论出于何种原因,这都是Android项目,方法参数值并不总是被填充,所以我必须自己手动填充它们。例如:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
//These arguments have their correct namespublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {}
});

最初将像这样填充:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
//This methods arguments were not automatically providedpublic void onCreateContextMenu(ContextMenu arg1, View arg2,ContextMenuInfo arg3) {}
});

奇怪的是,如果我删除我的代码,并让Eclipse自动重新创建该方法,它使用与我已经拥有的相同的参数名称,所以我真的不知道问题在哪里,否则它会为我自动格式化该方法。

必须手动重新创建所有被覆盖的方法,这变得相当痛苦。如果有人能解释为什么会发生这种情况或如何修复它。我会非常高兴。

也许是由于我格式化方法的方式,这些方法位于另一个方法的参数中?

265169 次浏览

Eclipse默认为Java1.5,并且您有实现接口方法的类(在Java1.6中可以用@Override注释,但在Java1.5中只能应用于覆盖超类方法的方法)。

转到您的项目/IDE首选项并将Java编译器级别设置为1.6,并确保您选择JRE 1.6以从Eclipse执行您的程序。

使用日食伽利略进入Eclipse->首选项菜单项,然后在对话框中选择Java和编译器。

现在它仍然可能显示编译器合规级别为1.6,但你仍然会看到这个问题。所以现在选择链接“配置项目特定设置…”,在那里你会看到项目设置为1.5,现在将其更改为1.6。你需要对所有受影响的项目执行此操作。

这个拜占庭式的菜单/对话框界面是典型的Eclipse糟糕的UI设计。

如果这种情况发生在其他人身上,他们尝试了alphaZero和Paul的方法,但仍然没有成功。

对我来说,eclipse以某种方式“缓存”了编译错误,即使在执行Project>Clean…

我必须取消选中项目>自动构建,然后执行项目>清洁,然后再次构建。

此外,如果有疑问,请尝试重新启动Eclipse。这可以修复许多尴尬的、无法解释的错误。

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

在我的情况下,上面的解决方案都不起作用。

我必须删除Project工作区中的文件:

  • .项目
  • . classpath

和文件夹:

  • .设置

然后我复制了以前工作的类似项目中的那些。这设法修复了我破碎的项目。

当然,在尝试以前的替代方案之前不要使用此方法!

这是我第二次遇到这个问题。第一次根据AlphaZero的建议,它奏效了。但在第二次我设置为1.6它不工作,就像'CACHE'这个错误后清理和重建。

尝试关闭自动构建Rollin_s说->错误仍然在这里!

所以我从Package Explorer中删除了问题项目(已经设置为1.6)并再次导入->它开始重建并且这次没有错误

希望这能帮助别人

在我的情况下,上面的解决方案都不起作用。我必须将我的源代码签出到另一个文件夹。从eclipse中选择文件>切换工作空间>其他…然后将代码导入到新的工作区。之后它会起作用。

保罗的回答对我有一定的帮助。那时我仍然有一个错误。所以,除此之外,我还必须去属性->Project Facets并将Java版本从1.5设置为1.6。

也许这有帮助。

修复必须覆盖超类方法错误并不困难,您只需要将Java源版本更改为1.6,因为从Java1.6@覆盖注释可以与接口方法一起使用。为了将源版本更改为1.6,请按照以下步骤操作:

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

如果以上没有任何帮助,请确保您选择了正确的“执行环境”,并选择了没有“备用JRE”。

可在以下地址找到:

项目->构建路径->库

选择JRE System Library并单击Edit...

如果选择了“备用JRE…”,请将其更改为像JavaSE-1.8 (jre1.8.0_60)这样合适的“执行环境”。不知道为什么,但这会解决它。

在我的情况下,当我将Maven项目导入Eclipse时发生了这个问题。为了解决这个问题,我在pom.xml中添加了以下内容:

<properties>...<maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties>

然后在项目的上下文菜单中,转到“Maven->Update Project…”,然后按OK。

就这样。希望这能有所帮助。

当您的maven项目使用不同的编译器合规性级别并且Eclipse IDE使用不同的编译器合规性级别时,会发生这种情况。为了解决这个问题,我们需要将Maven项目的编译器合规性级别更改为IDE使用的级别。

1)查看Eclipse IDE中Java编译器合规性级别的使用

*)窗口->首选项->编译器->编译器合规性级别:1.8(或1.7、1.6、等)

2)更改Maven项目Java编译器合规性级别

*)转到“项目”->“属性”->选择“Java编译器”->更改编译器合规性级别:1.8(或1.7、1.6等)

现在是2020年-

项目>右键单击>Java编译器>编译器合规性级别>将其更改为1.8[或最新级别]

输入图片描述