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

2022-08-31 03:55:36

每当我必须将我的项目重新导入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自动重新创建该方法,它使用与我已经拥有的相同的参数名称,所以我真的不知道问题出在哪里,除了它会自动为我格式化方法。

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

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


答案 1

Eclipse 默认为 Java 1.5,并且您有实现接口方法的类(在 Java 1.6 中可以用 注释,但在 Java 1.5 中只能应用于重写超类方法的方法)。@Override

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


答案 2

使用Eclipse Galileo,您可以转到Eclipse ->首选项菜单项,然后在对话框中选择Java和编译器。

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

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


推荐