首页
学习
活动
专区
圈层
工具
发布

@Override
EN

Stack Overflow用户
提问于 2010-09-28 05:30:25
回答 3查看 730关注 0票数 1

我使用JDK1.6在Eclipse中创建了一个项目/类文件。我让eclipse为接口的实现类生成代码。

代码语言:javascript
复制
public interface Foo {
    void bar();
}

public class FooImpl implements Foo {
    @Override
    public void bar() {
    }
}

到目前一切尚好。现在,由于某种原因,我已经在一个具有JDK 1.5的Eclipse中导入了这个项目,并且我看到了错误消息The method bar() of type FooImpl must override a superclass method,并快速修复了删除‘@重写’注释

在googling搜索之后,我了解到了类似于斯纳夫的东西--6.0Java编译器被更新,允许在接口方法实现上进行@重写。

EN

回答 3

Stack Overflow用户

发布于 2010-09-28 05:37:54

@重写在编译阶段有利于检查重写语法,因此出于同样的原因,它也被应用于接口。

票数 1
EN

Stack Overflow用户

发布于 2010-09-28 07:02:20

找不到问题,但是-是的,您是对的,@Override注释不允许对Java 5中的覆盖接口方法进行注释。因此,如果要用Java 5编译代码,就必须删除这些注释。

票数 1
EN

Stack Overflow用户

发布于 2010-09-28 07:24:15

即使您有JDK1.6,也可以将编译器选项设置为遵从级别1.5。这样,eclipse生成的代码将与java1.5兼容(它不会在实现接口的方法上添加@重写注释)。实际上,我认为您可以将其设置为永远不要放置@Override注释。

其实比这更复杂。为了完全兼容,您应该同时安装JDK1.6和JDK1.5,并将每个JDK设置为默认的JDK,以满足它们的遵从级别。这是确保代码完全向后兼容的最佳方法。

在preferences窗口(一般的,或特定的项目)中,转到Java->Compiler,并在那里设置遵从性级别。在Java->Installed JREs中添加JDK1.5,然后在Java->Installed JREs->执行环境中单击J2SE-1.5并检查新安装的JDK1.5。这确保如果您的项目或工作区设置为使用该遵从性级别,则eclipse将使用编译器行为以及JDK1.5附带的标准库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3809941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档