实现接口方法时不允许使用 @Override。

91

我遇到了标题中提到的问题。您可以说这个帖子和另一个帖子重复了:如何在IntelliJ IDEA中关闭注释的错误验证?

但是那里给出的解决方案不起作用。他们说我需要执行以下操作:

在“项目结构|项目”对话框中,将项目语言级别更改为6.0 - 接口中的 @Override。

然而,当前项目语言级别已经是6.0了,但我仍然看到错误。

Vic,这是窗口,语言级别下面没有JVM版本(很不幸,我不能发布图片,因为我的声望为10)。


我无法发布图片,但是在“项目语言级别”下没有任何选项,只有“项目编译器输出”,这看起来不像JVM版本。 - Nikitin Mikhail
7个回答

131
如果您的项目有多个模块,请确保每个模块都使用6级或更高级别的语言,或者使用项目的语言级别(请参见 项目设置> 模块> xxx >语言级别 )。

修改后,您可能需要重新加载项目。


1
是的。我只有一个模块,但它有第五种语言版本。谢谢。 - Nikitin Mikhail
10
刚遇到了同样的问题。我的项目语言级别已经是6.0,但是"@Override"注释仍然被突出显示。为了解决这个问题,你可以打开*.iml文件并设置LANGUAGE_LEVEL="JDK_1_6",然后重新加载项目。 - Georgy Gobozov
7
对于使用2016.2.4或更高版本的其他人,菜单已更改,现在是项目结构> 模块> xxx> 语言级别 - Wesley Smith

52

在您的模块/项目上,右键点击以查看上下文菜单:

输入图像描述

选择打开模块设置或按F4。在设置窗口中:

输入图像描述
选择语言级别部分设置值。


还应通过以下方式检查项目语言级别:按Ctrl + Alt + Shift + S

输入图像描述


27

更简单的解决方案 - 内联

  1. 将光标放在@Override单词上,并向左移动光标,直到红色灯泡图标出现。然后点击它。

    enter image description here

  2. 点击将语言级别设置为6 - 接口中的覆盖

    enter image description here


以上方法是以下方法的一个替代方案

  1. 转到文件 > 项目结构...或按下Ctrl+Alt+Shift+S

    enter image description here

  2. 进入项目设置 > 模块 > 源代码 > 语言级别,选择任何大于6的级别。

    enter image description here


15

如果您正在使用Maven,请将Maven编译器插件添加到项目的pom.xml文件中。

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

这对我解决了问题。


3
每个模块还有一个语言级别。请在项目结构中检查您的模块设置。

实际上我并没有看到其他地方可以查看项目语言级别,除了project-structure/project。 - Nikitin Mikhail
项目结构 | 模块 | <你的模块> | 语言级别 - Peter Gromov

0

我在使用多模块Maven项目时第一次遇到了这个问题。正如其他答案/IDE建议的那样,我们需要设置语言级别。

为了使项目IDE无关,而不是更改IDE的设置,我更新了父POM文件中的以下属性,解决了这个问题。

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

0
在 JIdea 2020.1.2 及以上版本中,
1. 进入“项目结构” [ Ctrl+Alt+Shift+S ] 2. 选择“模块”子部分 3. 选中每个模块 4. 在源码部分,勾选“语言级别” 5. 根据需要“更改语言级别”

enter image description here

注意:

如果您在进行此更改后遇到以下错误,请注意:

Error:java: Compilation failed: internal java compiler error

你还需要更改目标字节码版本。

  1. 进入设置 [ Ctrl+Alt+S ]
  2. 选择Java编译器
  3. 在表格中选择模块
  4. 将字节码版本更改为与前一步中选择的语言级别相对应

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接