[英]class is not abstract and does not override abstract method run() in java.util.timertask
我正在尝试使用计时器定期重复一个功能。 现在我必须将输入传递给函数,但是我得到错误“ 活动 不是抽象的,并且不会覆盖java.util.timertask中的抽象方法run() ”。
将值传递给定时器调用的嵌套函数的正确做法是什么? 在线或在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();}
}
}
使用匿名内部类:
import java.util.*;
public class className {
Timer timer;
public static void main(String args[]) {
//declarations...
executePeriodicActivities(milliseconds, args); // milliseconds are in "args"
}
public static void executePeriodicActivities(int seconds, String[] args) {
timer = new Timer();
timer.scheduleAtFixedRate(new TimeTask()
{public void run() {
function(args)
if(condition(args)) {timer.cancel();}
}
}, 0, milliseconds);
}
}
或类似的东西
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.