每当我必须将我的项目重新导入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自动重新创建方法,它使用的参数名称与我已有的相同,所以我不知道问题出在哪里,而是为我自动格式化方法。
必须手动重新创建所有重写的方法,这是一件非常痛苦的事情。如果有人能解释为什么会发生这种情况或如何解决它。我会很高兴的。
可能是因为我格式化方法的方式,这些方法在另一个方法的参数中?
13条答案
按热度按时间vhipe2zx1#
eclipse默认为java1.5,您有实现接口方法的类(在java1.6中可以用
@Override
,但在Java1.5中只能应用于重写超类方法的方法)。转到您的project/ide首选项,将java编译器级别设置为1.6,并确保选择jre 1.6从eclipse执行程序。
7eumitmz2#
伙计们,在我的情况下,上述解决方案都不起作用。
我必须删除项目工作区中的文件:
.项目
.类路径
以及文件夹:
.设置
然后我复制了一个类似的项目,这是以前的工作。这成功地修复了我的坏项目。
当然,在尝试前面的方法之前不要使用此方法!。
bpsygsoo3#
使用EclipseGalileo,进入eclipse->preferences菜单项,然后在对话框中选择java和编译器。
现在它可能仍然显示编译器符合性级别为1.6,但是您仍然可以看到这个问题。所以现在选择链接“Configureprojectspecificsettings…”,在那里你会看到项目被设置为1.5,现在把它改为1.6。对于所有受影响的项目,您都需要这样做。
这种拜占庭式的菜单/对话框界面是eclipse糟糕的ui设计的典型。
b1zrtrql4#
这是我第二次遇到这个问题。第一次根据alphazero的建议它成功了。但在第二次我设置为1.6它不工作,就像'缓存'这个错误后,清理和重建。
试着关闭'自动生成'罗林说->错误仍然在这里!
所以我从packageexplorer中删除了问题项目(已经设置为1.6)并再次导入->它开始重建,这次没有错误
希望这个能帮助别人
gev0vcfq5#
修复必须重写的超类方法错误并不困难,您只需要将java源代码版本更改为1.6,因为从java1.6@override注解可以与接口方法一起使用。要将源版本更改为1.6,请执行以下步骤:
选择“项目”,右键单击“属性”
选择java编译器并选中“启用项目特定设置”复选框
现在将编译器符合性级别设置为1.6
应用更改
u59ebvdq6#
现在是2020年-
项目>右键单击>java编译器>编译器符合性级别>将其更改为1.8[或最新级别]
idv4meu87#
就我而言,上述解决方案都不起作用。我必须 checkout 我的源代码到另一个文件夹。从eclipse中选择文件>切换工作区>其他。。。然后将代码导入新的工作区。在那之后就行了。
6rqinv9w8#
保罗的回答对我起了部分作用。当时我还有一个错误。因此,除此之外,我还必须转到properties->projectfacets,并将java版本从1.5设置为1.6。
也许这有帮助。
z2acfund9#
万一有人同时尝试了alphazero和paul的方法,但仍然没有成功。
对我来说,即使在执行了project>clean之后,eclipse还是以某种方式“缓存”了编译错误。。。
我不得不取消选中项目>自动生成,然后执行项目>清理,然后再次生成。
另外,如果有疑问,请尝试重新启动eclipse。这可以修复很多尴尬的、无法解释的错误。
kuhbmx9i10#
要解决此问题,请转到“项目属性”->“java编译器”->“选择编译器符合性级别为1.6”->“应用”。
ohfgkhjo11#
如果以上都没有帮助,请确保选择了正确的“执行环境”,而不是“备用jre”。
可在以下位置找到:
项目->生成路径->库
选择
JRE System Library
然后单击Edit...
.如果选择了“alternateJRE…”,则将其更改为合适的“执行环境”,如
JavaSE-1.8 (jre1.8.0_60)
. 不知道为什么,但这会解决的。ruoxqz4g12#
在我的例子中,这个问题发生在我将maven项目导入eclipse时。为了解决这个问题,我在
pom.xml
:然后在项目的上下文菜单中,转到“maven->update project…”,然后按ok。
就这样。希望这有帮助。
kt06eoxx13#
当maven项目使用不同的编译器遵从性级别,而eclipseide使用不同的编译器遵从性级别时,就会发生这种情况。为了解决这个问题,我们需要将maven项目的编译器遵从性级别更改为ide使用的级别。
1) 查看eclipseide中java编译器遵从性级别的用法
2) 更改maven项目的java编译器遵从性级别