缺少注释:Eclipse IDE中的编译器未显示@Override

时间:2019-04-29 20:12:56

标签: java object

这有点奇怪!但是当我为我的模式类实现Collection并使用Eclipse IDE添加未实现的方法时,在单击“添加未实现的方法”生成的任何方法中都没有显示@Override。

public class MadeItACollection implements Collection{
}

当我单击“添加已实现的方法”时,会发生以下情况:

public class MadeItACollection implements Collection{

 public int size() {
    // TODO Auto-generated method stub
    return 0;
}

public boolean isEmpty() {
    // TODO Auto-generated method stub
    return false;
}
.
.
.
.
}

我没有看到任何@Override。我正在用Java 8编译我的代码库。我缺少明显的东西吗?

2 个答案:

答案 0 :(得分:1)

正如人们的评论所暗示的那样,这是Eclipse中的“代码样式”选项。

可以在“首选项”->“ Java”->“代码样式”下启用它-确保选中“为新的覆盖方法添加@Override注释”;之后,您还可以通过直接在下面的链接来研究将其添加为接口方法的实现。 (您还可以在这些菜单中启用自动将注释添加为“清理”或“保存”操作。)

答案 1 :(得分:0)

在实现接口时,并非严格要求@Override批注,主要是因为您没有重写任何超类实现,而实际上是在实现接口声明的方法。因此也许需要@Implements批注,但这是一个完全不同的话题。

但是,强烈建议您仍然在这些方法上使用@Override批注,因为:

  1. 它明确地向阅读代码的任何人传达了它是一种覆盖方法。
  2. 如果您拼错了要覆盖的方法,则会引发编译时错误,从而避免因踢脚而shooting死自己,因为它会告诉您该方法是否可以实际覆盖现有的super方法。

大多数IDE实际上都会帮助您自动添加此内容:

Intellij Idea:

导航到

  

文件=>设置=>编辑器=>代码样式=> Java

并滚动到Override Method Signature,您应该找到Insert @Override annotation,确保已选中。

Jetbrains documentation关于此设置选项的说明如下:

  

插入@Override注释:选中此复选框可使IntelliJ IDEA自动插入@Override注释。

Itellij setting for missing override annotation

Eclipse:

导航至:

  

Window => Preferences => Java => Code Style

然后查找Add @Override annotation for new overriding methods并确保已被选中。

Eclipse setting for add override annotation for new overriding methods

您还可以通过导航到以下网址将其添加为Save Action

  

Window => Preferences => Java => Editor => Save Actions

并确保已选择Perform the selected actions on save和已选择Additional actions,并确保已配置Add missing Annotations

Eclipse setting for missing override annotation