java - 类不是抽象的,不会覆盖 java.util.timertask 中的抽象方法 run()

标签 java timer

我正在尝试使用计时器来定期重复某个功能。现在我必须将输入传递给该函数,但我收到错误消息“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/

相关文章:

java - 在没有 'time drift' 的 GUI 中创建重复操作

c++ - 在 C++11 中实现看门狗定时器

java - 为列的值创建一个序列,如果不存在值,则最小值为 1;如果存在值,则为比列上的最高值大 1

java - 使用导入的 XSD 和绑定(bind)生成 JAXB 类

java - 如何按每个键值的大小对 LinkedHashMap 进行排序?

Javascript 定时器和类型转换

java - 如何通过Java Agent保存检测后的java字节码?

java - 如何查看 HotSpot 优化后生成的代码?

ios - 使计时器无效并创建新实例

java - 如何创建自定义 Apache Camel Timer 对象