2 yijidemomo yijidemomo 于 2012.09.12 10:43 提问

向Eclipse导入一个项目时发生错误:'Must Override a Superclass Method'

每当我重新往Eclipse导入项目的时候(如果我重新安装了Eclipse,或者改变了项目的位置),几乎我所有的重写方法都不是正确的格式,导致了这个错误:“The method ?????????? must override a superclass method”。

因为这个Android项目它可能是值得注意的——不管出于什么原因,方法参数值总是不能自动填充,所以我不得不手动填充它们。
例如:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

                public void onCreateContextMenu(ContextMenu menu, View v,
                                ContextMenuInfo menuInfo) {
                        //这些参数有他们正确的名称
                }


        });

像这样在最初的状态下填充:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

                public void onCreateContextMenu(ContextMenu arg1, View arg2,
                                ContextMenuInfo arg3) {
                        //这些方法的参数没有自动提供
                }


        });

奇怪的是,如果我删除我的代码,Eclipse会自动重建方法,它使用我之前使用的同样的参数名称,所以我真的不知道问题出在哪里,然后它自动格式化了我的方法。
这变得相当的痛苦,我不得不手动重建我所有重写的方法。如果有人能解释为什么会发生这样的情况或者是怎么修改,我将会非常的高兴。
可能是我格式化的方法有问题,是在一个参数里边的另外一种方法?

6个回答

yizhenbeifeng
yizhenbeifeng   2012.09.12 10:59
已采纳

Eclipse默认的是java1.5,你得有一个可以实现接口的方法的类(在java1.6中可以被用@Override标注,但是在java1.5中它仅仅是被用于覆盖超类的一个方法)。
打开你的工程,然后把java编译器的版本升级到1.6,然后确保你使用JRE1.6来执行你来自eclipse的程序。

niangzhi
niangzhi 我的项目被设置成了1.6,我又把它设置成了1.5,重建,然后再设置成1.6。我的问题神奇般的就解决了,谢谢你给了我修改的方向。
大约 5 年之前 回复
liangchichexin
liangchichexin   2012.09.12 11:21

用eclipse定位系统打开Eclipse->选择菜单项,然后在对话框中选择java和编译器。
现在,它可能显示的编译器的版本仍然是1.6,你已经发现了这个问题。所以现在选择"Configure Project Specific Settings..."链接,然后你将看到你的工程变成了1.5,现在把它改变到1.6,。你需要给所有的受影响的工程这样做。
这种像迷宫一样的菜单/对话界面是Eclipse典型的糟糕的UI设计。

mansuifengqi
mansuifengqi   2012.09.12 11:38

对于我来说,尽管做了Project > Clean之后,eclipse仍然以某种方式缓存了这个编译错误
我不得不取消Project > Build Automatically,全部删除然后重新创建。

Haydroid
Haydroid   2015.06.04 17:46

图片说明

oSanYeCao1234567
oSanYeCao1234567   Ds   Rxr 2016.10.02 11:49

必须重写父类的方法,父类可能是接口或者抽象方法

intepter
intepter   2016.12.07 11:12

必须重写父类的方法

Csdn user default icon
上传中...
上传图片
插入图片