我正在尝试使用计时器来定期重复某个功能。现在我必须将输入传递给该函数,但我收到错误消息“activity 不是抽象的并且不会覆盖 java.util 中的抽象方法 run() .timertask".
将值传递给计时器调用的嵌套函数的正确做法是什么?在线或 java 文档上的示例过于模糊。
下面是代码的框架。任何想法?还可以链接到更好解释此问题的文档。
谢谢!
import java.util.*;
public class className {
Timer timer;
public static void main(String args[]) {
//declarations...
initialiseInputs(args);
new executePeriodicActivities(milliseconds); // milliseconds are in "args"
}
public void executePeriodicActivities(int seconds) {
timer = new Timer();
timer.scheduleAtFixedRate(new activity(args), 0, milliseconds);
}
class activity extends TimerTask { //error!
public void run() {
function(args)
if(condition(args)) {timer.cancel();}
}
}
}
最佳答案
向您的 activity
类添加一个构造函数,该类接受一个 long
参数。然后,您可以在 run()
方法中使用该值。
class activity extends TimerTask {
private long milis;
public activity(long milis) {
this.milis = milis;
}
public void run() {
function(args)
if(condition(args)) {timer.cancel();}
}
}
关于java - 类不是抽象的,不会覆盖 java.util.timertask 中的抽象方法 run(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4207092/