【问题标题】:Remove @Override annotation error in Java8删除 Java8 中的 @Override 注解错误
【发布时间】:2017-08-18 22:26:27
【问题描述】:

我用一个方法创建了以下接口:

public interface Greeting {

   public void perform();
}

我试图将接口的一个实例传递给 greet() 方法。

public class Greeter {

  public void greet(Greeting greeting){
    greeting.perform();
 }

 public static void main(String[] args) {       
    Greeter greeter=new Greeter();
 }
}

我创建了一个 Greeting Interface 的实现:

public class HelloWorldGreeting implements Greeting {

 @Override
 public void perform() {
    System.out.println("Hello World");

 }
}

我遇到了错误(HelloWorldGreeting 类型的方法 perform() 必须覆盖或实现超类型方法),快速修复为“删除 @Override 注释”

我还检查了编译器配置。它只有 1.8。

请让我知道为什么会出现错误或帮助我修复它。提前致谢。

【问题讨论】:

  • 你有什么问题?
  • 这对我来说似乎工作正常。
  • @AaronN.Brock 请告诉我为什么会出现错误或帮助我解决它?
  • 这是唯一的错误吗?
  • @JoeC 你用的是Java 1.8吗?

标签: java compiler-errors annotations javacompiler java-annotations


【解决方案1】:

请让我知道为什么会出现错误或帮助我修复它?

当没有生成最新的类文件时会发生这种情况,即覆盖方法签名不匹配,因为类文件仍然引用旧的。因此,请确保正确构建项目并生成最新的类文件。

在 Eclipse 中,Project(在顶部栏)-> clean 并检查是否正在生成最新的类文件(在 project/target/classes 文件夹或您配置的任何其他文件夹中)。此外,请确保项目中没有其他可能会阻止类文件生成的错误。您也可以查看here 了解项目无法构建的原因。

【讨论】:

  • 我使用了 Project>validate 选项。错误已解决。谢谢。
  • 太好了,是的,工作区错误导致项目构建失败(即,不会使用最新源生成 .class 文件)
  • 在我的例子中,用我的版本 (8) 的属性更新了 pom,相应地更新了 buildPath,并做了一个 maven 更新项目。这清除了错误。
【解决方案2】:

看起来您的 IDE Eclipse 在其 Java 构建路径中配置了 1.6 之前的 JRE 系统库。为了纠正这个问题,您需要配置您的 Workspace 默认 JRE (JDK1.8.0_xx) 的系统库,而不是 1.5 系统库。为此,您应该转到您的

项目>构建路径>配置构建路径>Java构建路径>库选项卡

在这里,验证 JRE 系统库。很可能这将是 1.5,因为正在发生此错误。 现在,单击添加库 选择库类型 -> JRE 系统库 -> 下一步

假设您已安装它,请选择 Workspace 默认 JRE (jdk 1.8.0_xx)。否则选择系统上其他已安装的 jre。 单击完成。 您的 JRE 1.8 应该被添加到 JRE 系统库中。 现在从构建路径中删除 JRE 1.5 并单击 Apply。 检查您的 Java Compiler JDK 合规级别是否仍为 1.8,然后进行干净构建。这应该可以解决问题。

【讨论】:

    【解决方案3】:

    您已选中“使用 Java 构建路径上的执行环境的合规性”复选框。您需要确保在构建路径定义中选择了 1.8 JRE。 1.5 JRE会产生这个错误。

    【讨论】:

      【解决方案4】:

      我遇到了类似的问题,尝试了这里提到的所有解决方案,但对我来说没有任何效果。所以最后我通过将JRE System Library 选项更改为指向jdk1.8.x_xAlternate JRE 解决了这个错误。

      谢谢!

      【讨论】:

        【解决方案5】:

        右击项目->验证

        然后选择要validate的文件。

        它对我有用。

        【讨论】:

          【解决方案6】:

          选择你有错误的那个文件,右键点击它去验证

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-02-09
            • 1970-01-01
            • 2012-06-12
            • 2011-08-08
            • 1970-01-01
            • 2023-03-26
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多