我正在尝试使用新的timerTask创建两个定时器,如下面的te代码所示。 timerTask对象是Timedtask3类的对象。 eclipse用红色突出显示“new Timedtask3()”,租约见下面以“// error”结尾的行。
错误显示“无法访问TimerTask00类型的封闭实例。必须使用TimerTask00类型的封闭实例限定分配(例如x.new A(),其中x是实例 of TimerTask00)。“
如何解决此错误?
代码:
public class TimerTask00 {
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(new Timedtask3(), 5000);//error
timer.cancel();
timer.purge();
timer = new Timer();
timer.schedule(new Timedtask3(), 5000);//error
}
class Timedtask3 extends TimerTask {
public void run() {
// TODO Auto-generated method stub
System.out.println("timer 3");
}
};
}
答案 0 :(得分:1)
让Timedtask3
班级成为static
,例如
static class Timedtask3 extends TimerTask {...}
这应该摆脱眼前的问题。
您无法在non static inner class
内实例化static method
。
答案 1 :(得分:-1)
//来自 YouTube “Java Full Course” by Bro Code - “一个简单的实现 //timertask就是添加匿名类...添加未实现的方法(run)...
TimerTask mbTTask = new TimerTask(){
@Override
public void run(){
System.out.println("Task is complete.");
}
};