【问题标题】:android @Override error before functionandroid @Override 函数之前的错误
【发布时间】:2012-10-21 02:17:19
【问题描述】:

我遇到了这个错误:

@Override
public void paint(Canvas canvas) {
}

MainActivity 类型的方法paint(Canvas) 必须覆盖或实现超类型方法。 仅当我在方法之前删除 @Override 时,错误才会消失。 我已经在 1.6 级的项目属性中设置了 java 编译器

你能帮帮我吗?

【问题讨论】:

  • MainActivity 类扩展了什么?除此之外-错误是自我解释的,您正在覆盖一个不在超类中的方法
  • 我不相信paint()是Activity中的方法...所以你不能重写超类没有的方法。
  • 你确定不是onDraw()方法而不是paint()?
  • @rahul 我也这么认为。但是Activity没有onDraw(),View有...
  • 看来他正试图覆盖View 中的onDraw。但我们有点需要更多细节。也许他在其他班级有绘画方法,但我真的怀疑。您能否向我们提供有关您正在尝试做的事情的更多信息?

标签: android


【解决方案1】:

如果您要扩展Activity,则不能覆盖paint 方法。

Paint 不是Activity 方法。您只能覆盖您正在扩展的类中的现有方法。

我也从来没有用过Paint。是否要覆盖 View 中的 onDraw(Canvas)

【讨论】:

  • 是的..现在我不了解超类,但感谢所有人,onDraw 工作
【解决方案2】:

您似乎正试图覆盖MainActivity 的超类中不“存在”的方法。

一些可能的原因(和解决方案):

  1. 您忘记将 extends ... 添加到您认为它 (MainActivity) 继承自的类中。
  2. 您混淆了方法名称,它不应该是 paint() - 如果是这种情况 - 只需更改方法名称
  3. 这是该类的新方法 - 应删除注释@Override。
  4. 您更改了原始方法的参数 - 您正在重载而不是覆盖。如果你真的想重写它,你应该坚持使用相同的参数,或者如果你在重载之后删除 @Override 注释。

【讨论】:

    【解决方案3】:

    如果您要覆盖的方法确实存在于父类中,请确保您至少使用 java 1.6 进行编译

    所以左键点击你的项目 -> 属性 -> Java 编译器 -> 至少选择 java 1.6 然后清理项目并重建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-12
      • 1970-01-01
      • 2015-11-24
      • 2010-10-22
      相关资源
      最近更新 更多