4

我在这里浏览了很多帖子,但看不到我需要的解决方案...

我收到错误:

the method initTimer(untitled.Object, String, int int) in the type untitled.TimerClass is not applicable for the arguments (untitled.Toon, String, int, int)

它让我发疯。

    timers.initTimer(character, "regenAdd", 0,3);

上面的行是引发错误的行,以下是函数:

public void initTimer(final Object obj, final String method, int delay, int period) {
delay*=1000;
period*=1000;

final Class<?> unknown = obj.getClass();

new Timer().schedule(new TimerTask() {
  public void run() {
    try {
      //get the method from the class 
      Method whatToDo = unknown.getMethod(method, null);
      try {
        //invoke() the object method
        whatToDo.invoke(obj);
      } catch(Exception e) {
        println("Exception encountered: " + e);
      }
    } catch(NoSuchMethodException e) {
      println("Exception encountered: " + e);
    }
    runState = getTimerState();

    if (!runState) {
      println("timer dead");
      this.cancel();
    }
  }
}
, delay, period);
}

提前感谢任何可以提供帮助的人:)

附加信息:

runState 是一个布尔值,以防万一你猜不到,而 character 是 Toon 类的一个实例;上述方法在 TimerClass 类中,'timers' 是该类的一个实例。

4

2 回答 2

6

错误信息

initTimer(untitled.Object, String, int int)类型中的方法untitled.TimerClass不适用于参数(untitled.Toon, String, int, int)

untitled.Toon是由于没有延伸的事实untitled.Object。它当然会扩展java.lang.Object,这就是为什么从源代码中无法立即看出原因的原因。

于 2012-12-15T03:21:24.273 回答
-1

此外,另一个错误是 initTimer(untitled.Object, String, int) 被称为 (untitled.Toon, String, int, int) - 注意参数数量的差异 - 方法声明中的 1 个 int 和调用方法。

请记住也纠正它。

于 2016-03-24T04:33:41.413 回答