同一项目但在不同工作区中的新编译器问题

时间:2010-12-28 20:47:30

标签: java eclipse

我完全没有Android项目,然后我创建了一个单独的工作区并在其中导入了该项目。在这个新工作区中,Eclipse向我展示了几个类似的问题和建议,以删除某些方法的@Override注释:

     button.setOnClickListener(new View.OnClickListener() {

         @Override
   public void onClick(View v) {

   }
  });

我检查了项目的属性,JRE和Android API - 一切都很相似。 我试图清理这个项目,这没有帮助。

Eclipse的错误描述:

 The method onClick(View) of type new View.OnClickListener(){} must override a
 superclass method  Ovals.java  /FlyingOvals/src/com/g/g    line 38 Java Problem

为什么会这样,我应该在哪里解决这些问题?

1 个答案:

答案 0 :(得分:3)

检查新工作区中的Java合规性级别。在Java 5中,从接口实现方法时不允许@Override。在Java 6中,这是允许的。如果适用,Eclipse将为此案例标记代码样式警告。您可以将Java合规性级别设置为Java 5(理想情况下在项目中,以便设置保持不变),或者您可以选择性地为项目禁用此警告。

请参阅项目属性 - > Java编译器

请参阅项目属性 - > Java编译器 - >错误警告。

我应该补充说,通常建议使用@Override注释,因为它会在基类更改时提醒您。考虑使用方法abc()的类Foo和覆盖该方法的派生类Bar。如果你用@Override标记Bar中的abc()方法,当有人在Foo中重命名abc()方法时,你会收到警告,因为Bar.abc()不再覆盖任何声明的内容。