java - 当方法退出时,该方法中的 Timer 对象是否存在?
问题描述
我最近正在阅读 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参数变量已经不存在了。
为什么beep
参数会消失?
其次,当start(interval,beep)
方法退出时,Timer
对象(即t)是否存在?非常感谢!
解决方案
推荐阅读
- c - C子进程没有收到SIGINT信号
- spring-boot - 使用 CCDT 和 Spring Boot JMSTemplate 连接 IBM MQ 集群时的 MQRC_UNKNOWN_ALIAS_BASE_Q
- hippocms - 如何使用 HstLink 对象获取文档的类型
- amazon-web-services - 如何在 AWS Lex 的话语中创建具有多个槽值的意图?
- laravel - 尝试在 Laravel 中验证 JSON 请求
- c# - 在 ViewModel 中为命令使用私有集的目的是什么?
- git - 如何显示所有提交的哈希 ID?
- javascript - 在评估javascript之前比较数学方程
- php - 为什么 Laravel Auth::attempt 方法不起作用?
- c# - 来自 FrameworkElementFactory 类型组合框的 Interaction.GetBehaviors