【问题标题】:Compiler error with @override when overriding an interface method on JDK 7u2在 JDK 7u2 上覆盖接口方法时使用 @override 的编译器错误
【发布时间】:2012-01-06 12:38:49
【问题描述】:

我知道,这听起来像是一个老问题,之前已经提出过 (*)。但它有点不同。我使用最新版本的 JDK (7u2) 和 eclipse(以及 AndroidSDK)安装了一个干净的系统。导入旧项目时,出现错误“Class 类型的方法 methodName(Parameter) 必须覆盖超类方法”。

@override-tag 在那里(正确),因为该方法覆盖了超类的 INTERFACE 的方法。不知何故,编译器认为这个标签只是直接用于超类。据我所知,@override 在 Java 7 中没有更改,并且我的项目在 6 上正常工作。这可能是错误或兼容性问题,还是我遗漏了什么?

(*)在 JDK5 上编译时曾经发生过类似的问题,只是因为 @override 尚未在 Java 5 中实现。解决方案当然是将编译器合规性级别更改为 6。但是什么是现在用 JDK 7 了吗?

【问题讨论】:

  • 您检查过 Eclipse 中的编译器合规性设置吗?
  • 是的。它在 JDK 7 上。目前还没有安装其他 JDK。
  • 合规级别应该是1.6,不管是JDK6还是JDK7

标签: java android


【解决方案1】:

您不应该使用 JDK 7 进行开发。有一个requirement,你必须使用 JDK 5 或 6。

【讨论】:

  • 其实我真正的问题是别的:eclipse插件的“修复项目属性”选项强制项目使用合规级别5,我没看到。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-15
  • 2011-06-27
相关资源
最近更新 更多