gpt4 book ai didi

java - 为什么这种从被破坏的 JDialog 中检索字段的方法有效?

转载 作者:行者123 更新时间:2023-11-30 03:33:37 25 4
gpt4 key购买 nike

上下文

想要了解如何使用自定义 JDialog 进行重要的、经过验证的数据输入,我搜索并找到了 interesting answer一个密切相关的问题。

我不明白的是为什么提供的答案中的代码有效。

我的问题

由于JDialog对象在actionPerformed()中执行了setVisible(false)dispose()其匿名 ActionListener 方法,当调用者返回程序流程并尝试获取字段时,垃圾收集器不应该已经销毁了这些字段吗?

最佳答案

dispose 将仅处理对话框所持有的 native 对等资源。如果您仍然拥有对相关 JDialog 的引用,则它将不符合垃圾回收条件,因为您仍然拥有对它的强引用。我假设您仍然有对对话框的引用,因为否则,您将如何尝试获取由它管理的值...

垃圾收集也不会立即发生......

根据您链接的问题...

FObjectDialog fod = new FObjectDialog(this);
//...
String name = fod.getName();

仍然通过 fodFObjectDialog 进行强引用。因此,直到 fod 离开上下文(方法返回)、取消引用 (fod = null;) 或重新分配,fod (以及扩展的对话框)将不符合垃圾回收的条件。

关于java - 为什么这种从被破坏的 JDialog 中检索字段的方法有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28491185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com