我最近正在阅读Java Core。这是Java Core Volume I第6.4.5节中的代码:
public void start(int interval,boolean beep){
class TimePrinter implements ActionListener{
public void actionPerformed(ActionEvent event){
System.out.println("At the tone,the time is " + new Date());
if(beep){
Toolkit.getDefaultToolkit().beep();
}
}
ActionListener listener=new TimePrinter();
Timer t=new Timer(interval,listener);
t.start();
}
我不明白的是两点:
首先,这本书说将listener
引用传递给javax.swing.Timer
构造函数,启动计时器,并退出start()
方法。此时,start方法的提示音参数变量不再存在。
为什么beep
参数会消失?
第二,当start(interval,beep)
方法退出时,Timer
对象(即t)是否存在?
非常感谢!