我完全没有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
为什么会这样,我应该在哪里解决这些问题?
答案 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()不再覆盖任何声明的内容。