java – 类型中的方法不适用于参数

我在这里查看过很多帖子,看不出我需要的解决方案……

我收到错误:

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 is a boolean just incase you couldn’t guess and
character is an instance of the Toon class; the above method is within
the TimerClass class and ‘timers’ is an instance of that class.

解决方法:

错误消息

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

是因为untitled.Toon没有扩展untitled.Object.它当然扩展了java.lang.Object,这就是为什么原因不是从源代码中立即显而易见的.

上一篇:Java中的APT的工作过程


下一篇:CMU Database Systems - Query Processing