gpt4 book ai didi

java - 我是否需要显式释放使用 CDI 创建的上下文 JDialog?

转载 作者:行者123 更新时间:2023-12-01 11:10:46 25 4
gpt4 key购买 nike

假设MyDialog扩展了javax.swing.JDialog。考虑这段代码:

MyDialog dialog = CDI.current().select(MyDialog.class).get();
dialog.setVisible(true);
dialog.dispose();

问题:

  • 是否需要用CDI显式释放dialog或者上面的代码已经可以了?如果是的话,我需要调用CDI的哪个类和方法? (考虑一下用户关闭对话框后。我不再需要它了)
  • 根据代码,dialog 位于哪个上下文中?

最佳答案

是的,您应该显式释放该 bean。这很重要,因为否则像 @PreDestroy 这样的东西将无法正常工作。要释放 bean,您可以使用以下代码:

CDI.current().destroy(dialog);

bean 的范围取决于您在 MyDialog 上添加的注释。如果您没有在类上放置任何 CDI 注释,则它将受到 @Dependent 作用域。这意味着每次调用 .select(MyDialog.class).get() 时,您都会获得一个新实例。

关于java - 我是否需要显式释放使用 CDI 创建的上下文 JDialog?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32417201/

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