java—将项目导入eclipse后出现“必须重写超类方法”错误

sshcrbum  于 2021-06-30  发布在  Java
关注(0)|答案(13)|浏览(533)

每当我必须将我的项目重新导入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自动重新创建方法,它使用的参数名称与我已有的相同,所以我不知道问题出在哪里,而是为我自动格式化方法。
必须手动重新创建所有重写的方法,这是一件非常痛苦的事情。如果有人能解释为什么会发生这种情况或如何解决它。我会很高兴的。
可能是因为我格式化方法的方式,这些方法在另一个方法的参数中?

vhipe2zx

vhipe2zx1#

eclipse默认为java1.5,您有实现接口方法的类(在java1.6中可以用 @Override ,但在Java1.5中只能应用于重写超类方法的方法)。
转到您的project/ide首选项,将java编译器级别设置为1.6,并确保选择jre 1.6从eclipse执行程序。

7eumitmz

7eumitmz2#

伙计们,在我的情况下,上述解决方案都不起作用。
我必须删除项目工作区中的文件:
.项目
.类路径
以及文件夹:
.设置
然后我复制了一个类似的项目,这是以前的工作。这成功地修复了我的坏项目。
当然,在尝试前面的方法之前不要使用此方法!。

bpsygsoo

bpsygsoo3#

使用EclipseGalileo,进入eclipse->preferences菜单项,然后在对话框中选择java和编译器。
现在它可能仍然显示编译器符合性级别为1.6,但是您仍然可以看到这个问题。所以现在选择链接“Configureprojectspecificsettings…”,在那里你会看到项目被设置为1.5,现在把它改为1.6。对于所有受影响的项目,您都需要这样做。
这种拜占庭式的菜单/对话框界面是eclipse糟糕的ui设计的典型。

b1zrtrql

b1zrtrql4#

这是我第二次遇到这个问题。第一次根据alphazero的建议它成功了。但在第二次我设置为1.6它不工作,就像'缓存'这个错误后,清理和重建。
试着关闭'自动生成'罗林说->错误仍然在这里!
所以我从packageexplorer中删除了问题项目(已经设置为1.6)并再次导入->它开始重建,这次没有错误
希望这个能帮助别人

gev0vcfq

gev0vcfq5#

修复必须重写的超类方法错误并不困难,您只需要将java源代码版本更改为1.6,因为从java1.6@override注解可以与接口方法一起使用。要将源版本更改为1.6,请执行以下步骤:
选择“项目”,右键单击“属性”
选择java编译器并选中“启用项目特定设置”复选框
现在将编译器符合性级别设置为1.6
应用更改

u59ebvdq

u59ebvdq6#

现在是2020年-
项目>右键单击>java编译器>编译器符合性级别>将其更改为1.8[或最新级别]

idv4meu8

idv4meu87#

就我而言,上述解决方案都不起作用。我必须 checkout 我的源代码到另一个文件夹。从eclipse中选择文件>切换工作区>其他。。。然后将代码导入新的工作区。在那之后就行了。

6rqinv9w

6rqinv9w8#

保罗的回答对我起了部分作用。当时我还有一个错误。因此,除此之外,我还必须转到properties->projectfacets,并将java版本从1.5设置为1.6。
也许这有帮助。

z2acfund

z2acfund9#

万一有人同时尝试了alphazero和paul的方法,但仍然没有成功。
对我来说,即使在执行了project>clean之后,eclipse还是以某种方式“缓存”了编译错误。。。
我不得不取消选中项目>自动生成,然后执行项目>清理,然后再次生成。
另外,如果有疑问,请尝试重新启动eclipse。这可以修复很多尴尬的、无法解释的错误。

kuhbmx9i

kuhbmx9i10#

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

ohfgkhjo

ohfgkhjo11#

如果以上都没有帮助,请确保选择了正确的“执行环境”,而不是“备用jre”。
可在以下位置找到:
项目->生成路径->库
选择 JRE System Library 然后单击 Edit... .
如果选择了“alternateJRE…”,则将其更改为合适的“执行环境”,如 JavaSE-1.8 (jre1.8.0_60) . 不知道为什么,但这会解决的。

ruoxqz4g

ruoxqz4g12#

在我的例子中,这个问题发生在我将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。
就这样。希望这有帮助。

kt06eoxx

kt06eoxx13#

当maven项目使用不同的编译器遵从性级别,而eclipseide使用不同的编译器遵从性级别时,就会发生这种情况。为了解决这个问题,我们需要将maven项目的编译器遵从性级别更改为ide使用的级别。
1) 查看eclipseide中java编译器遵从性级别的用法

  • )窗口->首选项->编译器->编译器符合性级别:1.8(或1.7、1.6、etc)

2) 更改maven项目的java编译器遵从性级别

  • )转到“项目”->“属性”->选择“java编译器”->更改编译器符合性级别:1.8(或1.7、1.6、etc)

相关问题