我在这里查看过很多帖子,看不出我需要的解决方案……
我收到错误:
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 typeuntitled.TimerClass
is not
applicable for the arguments(untitled.Toon, String, int, int)
是因为untitled.Toon没有扩展untitled.Object.它当然扩展了java.lang.Object,这就是为什么原因不是从源代码中立即显而易见的.