我提到了其他类似的问题,并尝试了解决方案但不知何故对我不起作用。所以,基本上我有一个实现接口(API)的类。 @Override
抱怨Eclipse
注释。我确保它使用JDK 1.6
合规级别;将错误更改为Eclipse Preferences->Java Compiler->Error/Warnings->Annotations
中的警告,但它仍然给我编译问题。解决方法是评论@Override
,但我想解决此问题。我能错过什么?在Mac上使用JDK 1.7
的Eclipse Kepler。
@Bohemian这是一个私人图书馆。
package mypackage;
import somepckage.model.Session;
public interface SessionDirectoryNotification {
public void onChange (Session session) {
}
}
public class MyHandler implements SessionDirectoryNotification {
@Override
public void onChange (Session session) {
... my code...
}
}
答案 0 :(得分:0)
@Override annotation - 是java编译器的指示器,您打算覆盖或实现方法。这有助于避免错误。 例如,界面中的方法签名已更改,因此您必须更改实例方法。在这种情况下,Eclipse将突出显示错误。
public interface ISome {
void methodToImplement(int param);
}
public class SomeClass {
// compile, method signature is identical to the signature of the interface
@Override
void methodToImplement(int param);
// won't compile, cause method signature is different in the interface
//@Override
//void methodToImplement();
// won't compile, cause there is no such method in the interface
//@Override
//void missing();
}
检查您是否有这种错误。如果不是这样,请提供一些代码。
答案 1 :(得分:0)
您(可能)导入了错误的Session
类。
确保您的实施类中包含以下行:
import somepckage.model.Session;