Eclipse中的@Override注释不会消失

时间:2014-04-19 15:54:29

标签: java eclipse override

我提到了其他类似的问题,并尝试了解决方案但不知何故对我不起作用。所以,基本上我有一个实现接口(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...
     }
}

2 个答案:

答案 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;