【问题标题】:Why I can't use Override annotations at Android?为什么我不能在 Android 上使用 Override 注释?
【发布时间】:2012-03-14 13:57:10
【问题描述】:

我正在为 android 开发一个应用程序,但我不能使用 Override 注释。它一直说该方法必须覆盖超类方法,确实如此。我正在使用 Java 1.7 和 Android API 8 (2.2)。使用 Eclipse。

有什么想法吗?

编辑:

例子

@Override
public int getCount() {
    // TODO Auto-generated method stub
    return this.data.size();
}

但是编译器不允许我使用@Override,说它不是超类方法。我正在扩展 BaseAdapter。

【问题讨论】:

  • 我向你保证,如果你尝试从中构造一个SSCCE,你会发现错误是什么。

标签: java android annotations compiler-errors overriding


【解决方案1】:

在构建 android 项目时,您应该使用 java 1.6。 Java 1.7 与当前的 Android 工具集不兼容。将您的项目更改为使用 1.6,这个问题应该会消失

在日食中: 右键项目 -> 属性 -> Java 编译器 -> 将所有对 1.7 的引用切换到 1.6

【讨论】:

  • 实际上这成功了。问题是它解决了一个问题,但又增加了另一个问题。现在它说找不到一些参考资料。我猜这是一个 Eclipse 错误,因为我导入了项目。我将重新导入项目并清理它,看看我是否可以与 1.6 一起使用。
【解决方案2】:

可以使用@Override 注释。如果你得到这个错误,这意味着你的方法原型有错误,或者你没有扩展你想要扩展的东西。

例如,在 API 级别 8 上,以下将给您错误,正如 API 11 中引入的方法:

@Override   
public void startActivities (Intent[] intents){

}

【讨论】:

    猜你喜欢
    • 2015-06-14
    • 2011-01-21
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多