【发布时间】:2015-12-28 04:13:45
【问题描述】:
您好,我正在创建一个类,我可以在其中传递被称为周期性或一次性的函数。 .问题是我传递的函数被立即调用,之后当它们被假定被调用时,我得到以下错误:
java.lang.NullPointerException
at TimedFunction$2.run(TimedFunction.java:41)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
Base 类如下(仅相关部分):
import java.util.concurrent.Callable;
...
public TimedFunction () {}
public void addSingleEvent (Callable func, int seconds){
//Convert to seconds from miliseconds
int time = seconds * 1000;
//Create a new timer
new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
try {
func.call();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
},
time
);
}
然后我做一个如下所示的测试类:
public static void main(String[] args) {
// TODO Auto-generated method stub
TimedFunction tm = new TimedFunction();
tm.addSingleEvent(helloWorld(), 5);
tm.addRepeatedEvent(dataWorld(), 1);
}
private static Callable helloWorld() {
System.out.print("Hello world!");
System.out.print(" ");
return null;
}
【问题讨论】:
-
如需尽快获得更好的帮助,请发帖minimal reproducible example 或Short, Self Contained, Correct Example。
-
还有.. 这和 Swing 有什么关系?