所以基本上我的程序中有一个定时器方法,它使用整数z作为参数,以及定时器本身的延迟。但每次我运行这个方法时,它都会创建一个新的计时器,而不是删除旧的计时器。所以我决定添加一个if-else块,这样它只在第一次创建了一个计时器,但现在它可能没有初始化,因为它是在if-elses块中初始化的。有人能帮我吗?
public void timer(int z) {
int count = 0;
Timer tester;
z = (60000 / z);
decide = true;
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {noteDecider();}
};
if(count == 0) {
tester = new Timer(z, taskPerformer);
tester.start();
}
else {
tester.setDelay(z);
tester.start();
}
count++;
}
我想说,如果你关心优化代码,你应该考虑优化Timer类。比如在Timer本身内部移动ActionListener对象等等。您的timer(intz)方法所做的只是尝试使用一个对象来跟踪时间,而不是管理timer对象的生命周期。