将项目导入Eclipse之后,必须覆盖超类方法错误

任何时候我必须重新导入我的项目到Eclipse(如果我重新安装了Eclipse,或更改了项目的位置), 几乎所有我重写的方法格式不正确,导致错误The method must override a superclass method

值得一提的是,这是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自动重新创build方法,它使用我已经有的相同的参数名称,所以我真的不知道问题在哪里,除此之外它自动格式化方法我。

这成为一个非常痛苦的手动重新创build所有我重写的方法。 如果任何人都可以解释为什么发生这种情况或如何解决这个问题..我会很高兴。

也许这是由于我格式化的方法,这是在另一种方法的论点内?

Eclipse缺省为Java 1.5,而且您有实现接口方法的类(在Java 1.6中可以使用@Override进行注释,但在Java 1.5中只能应用于覆盖超类方法的方法)。

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

使用Eclipse Galileo进入Eclipse – > Preferences菜单项,然后在对话框中selectJava和Compiler。

现在它仍然可以显示1.6的编译器合规性水平,但你仍然看到这个问题。 所以现在select“ configuration项目特定设置… ”的链接,在那里你会看到项目设置为1.5,现在将其更改为1.6。 您需要为所有受影响的项目执行此操作。

这个拜占庭菜单/对话框界面是Eclipse糟糕的UIdevise的典型代表。

如果这种情况发生在任何其他尝试阿尔法零和保罗的方法,仍然没有工作的人。

对我来说,甚至在执行一个Project> Clean …之后,eclipse会以某种方式“caching”编译错误。

我必须取消选中Project> Build Automatically,然后执行Project> Clean,然后重新编译。

另外,如果有疑问,请尝试重新启动Eclipse 。 这可以解决很多尴尬,无法解释的错误。

要解决此问题,请转至您的项目属性 – > Java编译器 – >select编译器合规性级别为1.6-> Apply。

保罗的答案部分地为我工作。 那么我仍然有一个错误。 所以,除此之外,我还必须去Properties-> Project Facets,并将Java版本从1.5设置为1.6。

也许这有帮助。

在我的情况下,上述解决scheme都没有奏效。

我不得不删除项目工作区中的文件:

  • 。项目
  • 的.classpath

和文件夹:

  • .settings

然后我复制了以前工作过的类似项目。 这设法解决了我的破碎的项目。

在尝试以前的替代方法之前,当然不要使用这个方法!

这是我第二次遇到这个问题。 第一次根据alphazero的推荐它的工作。 但在第二次我设置为1.6它不工作,就像清理和重build后的“CACHE”这个错误。

尝试closures“自动生成”Rollin_s说 – >错误仍然在这里!

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

希望这可以帮助别人

如果上述内容没有任何帮助,请确保您select了适当的“ 执行环境 ”,而不是 “备用JRE”。

在下面find:

项目 – >构buildpath – >库

selectJRE System Library ,然后单击Edit...

如果select“Alternate JRE …”,则将其更改为类似JavaSE-1.8 (jre1.8.0_60)的适合的“执行环境”。 不知道为什么,但这会解决它。

转到Windows->首选项 – > Java – >编译器 – >select编译器合规性级别为1.6(您想要哪个版本) – >应用 – >确定。 现在它的工作。

修复必须重写一个超类的方法错误并不困难,您只需要将Java源版本更改为1.6,因为从Java 1.6开始,@Override注释可以与接口方法一起使用。 要将源代码版本更改为1.6,请按以下步骤操作:

  1. select项目,右键单击属性
  2. selectJava编译器并选中checkbox“启用项目特定设置”
  3. 现在编译器符合性级别为1.6
  4. 应用更改

在我的情况下,当我将一个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。

而已。 希望这可以帮助。

在我的情况下,没有上述解决scheme的作品。 我必须检查我的源代码到另一个文件夹。 从eclipse中selectFile> Switch workSpaces> Other …,然后将代码导入新的工作区。 它在那之后工作。