scheduleAtFixedRate()的问题

时间:2015-06-01 21:00:42

标签: java timer schedule

import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.*;
public class SecondsTimer{
     private ScheduledExecutorService timer;
     private int seconds=0;
     public SecondsTimer(){
          long second=1000;
          timer.scheduleAtFixedRate(new Runnable(){public void run(){seconds++;}},
                                    second, second, TimeUnit.MILLISECONDS);
     }
     public int getSeconds(){return seconds;}
}

在上面的代码中,我试图创建代码来计算秒数。我遇到了第9行的运行时错误NullPointerException。有更简单的方法可以做到这一点,还是我错过了一些明显的东西?

1 个答案:

答案 0 :(得分:0)

问题是您从未设置变量null,因此当您尝试使用它时它是ScheduledExecutorService

有关如何实例化etc/config.xml接口的指导,have a look at the docs

您必须在第9行之前设置它,因此在您尝试访问它之前。

旁注:由于您正在处理所有写入访问一个变量的多个线程,因此您还应该look into the concept of thread safety