[英]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.