我刚刚从今年开始刚刚读到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没有启动。