Java Intellij覆盖警告

Java Intellij覆盖警告,java,intellij-idea,Java,Intellij Idea,我对IntelliJ有一个恼人的问题,它在实现接口时在@Override注释下放置黄色警告线 你知道为什么吗 干杯 编辑:错误为“@Override不适用于方法” 界面偏差: public interface Material { public long getID(); public String getMaterialCode(); public String getMaterialShortName(); public String getMaterialLongName();

我对IntelliJ有一个恼人的问题,它在实现接口时在@Override注释下放置黄色警告线

你知道为什么吗

干杯

编辑:错误为“@Override不适用于方法”

界面偏差:

public interface Material {

public long getID();

public String getMaterialCode();

public String getMaterialShortName();

public String getMaterialLongName();
}

类减速:

public class StandardMaterial implements Material {

private long id;
private String materialCode;
private String materialShortName;
private String materialLongName;

public long getID() {
    return id;
}

@Override
public String getMaterialCode() {
    return materialCode;
}

@Override
public String getMaterialShortName() {
    return materialShortName;
}

@Override
public String getMaterialLongName() {
    return materialLongName;
}
}

(使用Java8)


只有java 6及更高版本才支持接口的覆盖注释


检查intellij是否使用了正确的jdk和语言级别,以及maven(或您在intellij之外使用的任何构建工具)。检查您是否未覆盖此特定UALR模块的project sdk。

仅java 6及更高版本支持接口的覆盖注释


检查intellij是否使用了正确的jdk和语言级别,以及maven(或您在intellij之外使用的任何构建工具)。检查您是否未覆盖此特定UALR模块的project sdk。

不要手动编写方法。您能否只创建一个实现
Material
接口的
StandardMaterial
类,然后
ctrl+space
自动生成实现的方法?另外,您的
getID
方法没有覆盖注释。

不要手动编写方法。您能否只创建一个实现
Material
接口的
StandardMaterial
类,然后
ctrl+space
自动生成实现的方法?另外,您的
getID
方法没有覆盖注释。

如果它是一个maven项目,请确保您在pom.xml中有一个maven编译器插件的定义,其中明确地将编译和源代码级别设置为至少1.6

例如:

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
</plugin>

org.apache.maven.plugins
maven编译器插件
3.2
1.6
1.6

它默认为1.5,因此@Override还不可用。Intellij Idea似乎会评估编译器插件,即使它没有指定

如果是maven项目,请确保pom.xml中有maven编译器插件的定义,其中明确地将编译和源代码级别设置为至少1.6

例如:

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
</plugin>

org.apache.maven.plugins
maven编译器插件
3.2
1.6
1.6

它默认为1.5,因此@Override还不可用。Intellij Idea似乎会评估编译器插件,即使它没有指定

将鼠标放在@override上时,intellij消息是什么?intellij不会显示不必要的错误。这应该是代码中的一个问题。您的项目是否设置为Java 1.5兼容?鼠标悬停在
@Override
上会显示什么消息?@RobbyCornelissen我使用的是语言级别7。0@NimChimpsky已经在使用Java8了!将鼠标放在@override上时,intellij消息是什么?intellij不会显示不必要的错误。这应该是代码中的一个问题。您的项目是否设置为Java 1.5兼容?鼠标悬停在
@Override
上会显示什么消息?@RobbyCornelissen我使用的是语言级别7。0@NimChimpsky已经在使用Java8了!