Java @Eclipse中的重写注释不会消失

Java @Eclipse中的重写注释不会消失,java,eclipse,overriding,Java,Eclipse,Overriding,我参考了其他类似的问题并尝试了解决方案,但不知何故,对我来说并不奏效。所以,基本上我有一个实现接口(API)的类。有一个@Override注释Eclipse对此进行投诉。我确保它使用了JDK 1.6合规级别;在EclipsePreferences->Java编译器->错误/警告->注释中将错误更改为警告,但仍然会给我带来编译问题。解决方法是注释@Override,尽管我想解决这个问题。我会错过什么?在Mac上使用JDK1.7实现Eclipse开普勒 @波希米亚人这是一个私人图书馆 package

我参考了其他类似的问题并尝试了解决方案,但不知何故,对我来说并不奏效。所以,基本上我有一个实现接口(API)的类。有一个
@Override
注释
Eclipse
对此进行投诉。我确保它使用了
JDK 1.6
合规级别;在Eclipse
Preferences->Java编译器->错误/警告->注释中将错误更改为警告,但仍然会给我带来编译问题。解决方法是注释
@Override
,尽管我想解决这个问题。我会错过什么?在Mac上使用JDK1.7实现Eclipse开普勒

@波希米亚人这是一个私人图书馆

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...
     }
}

@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();
}
检查是否存在此类错误。如果不是这样,请提供一些代码。

您(可能)导入了错误的
会话

确保实现类中有以下行:

import somepckage.model.Session;

显示接口和方法签名。错误可能是legitimate@Bohemian这里是-'code'@覆盖,您的类扩展/实现了哪些类/接口?我的类实现了上面所示的'SessionDirectoryNotification'中定义的'onChange'。很抱歉,即使我尝试引用stackoverflow文档,也无法修复格式。我做读者的时间太长了,最近我试着发帖提问,并进行更多的互动。令人惊讶的是,声誉<15的人无法回答或参与任何其他讨论。谷歌没有显示对
SessionDirectoryNotification
的点击率,因此它一定是一个来自私人图书馆的类。请将
onChange
方法的定义按
SessionDirectoryNotification
类中的编码逐字发布。不要在里面输入-复制粘贴,这样就不会有印刷错误。请看我上面的回复。Override是正确的,但Eclipse不知何故抱怨此注释。这似乎更像是Eclipse的问题,因为我可以通过maven和命令行轻松构建它。如果我取消@Override注释,我将从Eclipse获得以下消息(如果我将鼠标悬停在红色标记指示编译问题上)italic类型为SessionDirectoryNotificationHandler的方法onChange(会话)必须重写超类方法感谢您的评论。我编辑了这篇文章,使用代码结构使代码更加清晰。我意识到在添加注释时,代码无法格式化,因为HTML编辑器只在编辑原始帖子时显示,用于回答问题。现在就习惯于发表评论。谢谢你的回复!我仔细检查了一下,输入是正确的。这不会出错,因为我使用的是Eclipse自动完成。事实上,我删除了导入,然后Eclipse抱怨缺少导入。添加了它,现在出现了覆盖问题。Eclipse建议删除此注释。早些时候,我能够用另一个工作区中描述的Eclipse设置来解决这个问题。当我切换到这个工作区时,这个问题再次出现。我在多个工作空间工作。我可能可以做更多的修补并解决这个问题,但问这个问题的目的是为了得到一些相关的指针。