【发布时间】:2013-09-23 22:00:30
【问题描述】:
我在 timer.stop() 中得到一个错误,它说“局部变量 timer 是从类中访问的;需要声明为 final”
public static void main(String args[]) {
int tick;
Timer timer;
timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int tick=0;
System.out.println("Success" + ++tick);
if (tick > 4) {
timer.stop();
}
}
});
timer.setInitialDelay(0);
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}
我试过这个:
public static void main(String args[]) {
int tick;
Timer timer;
final Timer timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int tick=0;
System.out.println("Success" + ++tick);
if (tick > 4) {
timer.stop(); //this refers to the final variable timer, this is valid.
}
}
});
timer.setInitialDelay(0);
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}
现在错误出现在“final Timer timer = new Timer(1000, new ActionListener() {”该计时器已在 main(java.lang.String[]) 中定义 如果我删除 Timer 计时器;它在“timer.stop()”上显示变量计时器可能尚未初始化的错误
【问题讨论】:
-
...问题是什么?
-
我第一次阅读时文本不完整。它是在几分钟前编辑的。
标签: java variables timer local