每当我必须重新导入我的项目到Eclipse(如果我重新安装Eclipse,或改变项目的位置),几乎所有重写的方法都没有正确格式化,导致错误:

该方法必须重写超类方法

值得一提的是,这是在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 Galileo,您可以转到Eclipse -> Preferences菜单项,然后在对话框中选择Java和Compiler。

现在它仍然显示编译器遵从级别为1.6,但您仍然会看到这个问题。所以现在选择链接“Configure Project Specific Settings…”,在那里你会看到项目设置为1.5,现在把它改为1.6。您需要为所有受影响的项目执行此操作。

这种复杂的菜单/对话框界面是Eclipse糟糕UI设计的典型表现。

其他回答

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

以我为例,当我将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”。

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

以防这种情况发生在其他人身上,他们尝试了alphazero和保罗的方法,但仍然没有成功。

对我来说,eclipse以某种方式“缓存”编译错误,甚至在做了一个项目>清洁…

我不得不取消项目>自动构建,然后执行项目>清洁,然后再次构建。

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

这是我第二次遇到这个问题。 根据alphazero的建议,第一次成功了。 但在第二次我设置为1.6时,它不工作,就像“缓存”这个错误后清理和重建。

尝试像Rollin_s说的那样关闭“自动构建”->错误仍然存在!

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

希望这对大家有所帮助

如果以上都没有帮助,请确保选择了合适的“执行环境”,而不是“替代JRE”。

可在下面找到:

项目->构建路径->库

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

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