我在这里看了很多帖子,看不出我需要的解决方案......
我收到了错误:
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'是该类的一个实例。
答案 0 :(得分:6)
错误消息
类型
initTimer(untitled.Object, String, int int)
中的方法untitled.TimerClass
不是 适用于参数(untitled.Toon, String, int, int)
是由于untitled.Toon
未延伸untitled.Object
这一事实。它当然扩展了java.lang.Object
,这就是为什么原因并不是源代码中显而易见的原因。
答案 1 :(得分:-1)
另外,另一个错误是initTimer(untitled.Object,String,int)被调用为(untitled.Toon,String,int,int) - 注意参数个数的差异 - 方法声明中的1个int和2个int在调用方法。
请记住也要纠正。