假设MyDialog
扩展javax.swing.JDialog
。请考虑以下代码:
MyDialog dialog = CDI.current().select(MyDialog.class).get();
dialog.setVisible(true);
dialog.dispose();
问题:
dialog
或上述代码已经很好了?如果是这样,我需要调用哪个CDI类和方法? (考虑到用户关闭对话框后。我不再需要它了)dialog
生活在哪里?答案 0 :(得分:1)
是的,您应该显式释放bean。这很重要,否则@PreDestroy
之类的内容将无法正常工作。要释放bean,您可以使用以下代码:
CDI.current().destroy(dialog);
bean的范围取决于您在MyDialog
上添加的注释。如果您没有在课程上放置任何CDI注释,那么它将是@Dependent
范围。这意味着每次拨打.select(MyDialog.class).get()
时都会获得一个新实例。