Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java IntelliJ是否可以将@Overrides添加到特定接口的所有方法中?_Java_Annotations_Intellij Idea - Fatal编程技术网

Java IntelliJ是否可以将@Overrides添加到特定接口的所有方法中?

Java IntelliJ是否可以将@Overrides添加到特定接口的所有方法中?,java,annotations,intellij-idea,Java,Annotations,Intellij Idea,我已经创建了一个接口,包含大约30个方法,并在30个类中实现 我想将@Override添加到每个实现中,但我不想手工完成 IntelliJ能帮我什么忙 界面如下所示: public interface PreviewObjectTests { void testGetName(); void testGetType(); //... 30 similar methods } 实施代码: public class PreviewObjectAccountTest impl

我已经创建了一个接口,包含大约30个方法,并在30个类中实现

我想将@Override添加到每个实现中,但我不想手工完成

IntelliJ能帮我什么忙

界面如下所示:

public interface PreviewObjectTests {
    void testGetName();
    void testGetType();
    //... 30 similar methods
}
实施代码:

public class PreviewObjectAccountTest implements PreviewObjectTests {

    //I want to add @Override here!
    @Test public void testGetName() {
        assertThat(...);
    }

    //I want to add @Override here!
    @Test public void testGetType() {
        assertThat(...);
    }

    //...30 similar methods 

}
使用Alt+Enter INTERNATIONE可轻松完成,然后按右箭头查看子菜单:


我找到了一种使用简单的查找/替换工具的方法

  • 首先,我更改了一个方法名,以使实现接口的所有文件都发生更改
  • 然后,我创建了一个简单的find/replace,以便只查找已更改的文件

  • 这适用于我的特殊情况,因为类文件中实际上没有任何其他方法。如果我在属于其他接口的文件中有很多方法,我会认为这会有点疯狂

    它不是eclipse或idea specfic。它的编译器规格以及您遵守的法规遵从性。 在eclipse中为1.6或更高版本。 在我看来,1.5或更高

    在上述情况下,它将由各自的IDE自动检查。

    对于IntelliJ:

  • 检查是否在首选项->项目设置->检查->继承问题中选中了“缺少@Override注释”
  • 使用分析->检查代码
  • 在“检查配置文件的结果”窗口中查找继承问题->缺少@Override注释
  • 应用修复“添加@Override注释”
  • 对于Eclipse(在火星2上测试):

    窗口/首选项(或项目属性) Java/编译器 错误/警告 注释 缺少@Override注释-设置为错误(或警告)

    在重建工作区之后,在“标记”视图中,右键单击其中一个错误“快速修复”(Ctrl+1),所有错误都会显示。选择全部并应用修复


    这使我能够正确地注释几百个类……

    在eclipse中很容易做到,但我不知道intellij。那么,在eclipse中您将如何做到这一点呢?这可能有助于这个问题的读者了解:)事实上,我没有在我的文件中得到这个意图的建议。我在列表中的唯一意图是
    扩展到“@test()”
    。您所指的意图是否仅在生产类文件中有效,而不在测试中有效?请确保项目语言级别设置为1.6或更高。语言级别设置为
    “6.0级-@在接口中重写”
    。(我在java 1.6.0_27中使用intelliJ 11.01)。是否在设置|检查中启用了缺少的@Override注释检查?你能在我的截图上突出显示方法名吗?当插入符号位于高亮显示的代码上时,按Alt+Enter。我已经验证了它也适用于测试类。您能否共享一个示例项目,以便我们可以尝试重现缺少意图操作的问题?me-1缺少@Override注释(我不能这样做:))为此执行搜索/替换是一个坏主意。我同意这是一个坏主意,但没有更好的主意。幸运的是,这对我来说很有效,因为我组织单元测试文件的方式。Text replace不好,因为您需要检查哪些方法实际上是重写的,哪些不是重写的。由于这个特性是Java IDE中内置的,我别无选择,只能投反对票:'(在我的Intellij版本中,它是在“类结构”中而不是在“继承问题”中,但您可以在“检查”屏幕上搜索“覆盖”并找到“缺少@Overrid注释”很容易。对不起,伙计,这是一个否定的说法。问题是关于自动修复:“我想在每个实现中添加@Override,但我不想手工完成。”