TimerTask不在for循环中启动(Java)

时间:2017-01-27 02:13:44

标签: java for-loop timer timertask

我刚刚从今年开始刚刚读到java高中二年级,我目前正在开展一个辅助项目并且不能让这段代码工作,我知道它在哪里&# 39;不工作我只是需要帮助知道原因。

public Timer[] t = new Timer[3];

public TimerTask tt[] = new TimerTask[3];

public int ttc = 0; 
public int[] hasBought = new int[3];
public int[] j = 1;

public void run()
{
    for(;ttc<3; ttc++)
    {
        System.out.println(ttc+"a");
        tt[ttc] = new TimerTask()
                {

                    @Override
                    public void run()
                    {
                        System.out.println(ttc+"b");
                        count += (j*hasBought[ttc]);                            
                    }

                };

        System.out.println(ttc+"c");
        t[ttc].scheduleAtFixedRate(tt[ttc] , 1000, 1000);
    }

根据我目前所知,这应该都运行正常并打印0a 0b 0c 1a 1b 1c 2a 2b 2c它也应该启动3个定时器但它打印0a 0c并出现NullPointerException错误。第二部分是有意义的,因为TimerTasks显然没有被初始化,因为它不打印0b。

修改

我不确定导致问题的原因,但我猜这与这些问题有关:

tt[ttc] = new TimerTask()
                {
                    @Override
                    public void run()

修改

我没有遇到NullPointerException问题,我知道它是什么以及如何修复它,我不明白为什么TimerTask没有启动。

0 个答案:

没有答案