[英]Changes to dependancy Java classes do not take effect until Main .java file is touched
我对此进行了大量搜索。.我有一个可以用以下代码概括的问题:
item.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JDialog ui = new RandomDialog();
}
});
item
只是一个菜单项,而RandomDialog
是扩展JDialog
的类。
每次我对RandomDialog
类进行更改时,都必须将ui
声明从JDialog
“更新”到RandomDialog
,然后反之亦然。
问题是什么?
[编辑]
我有一个JFrame
和JMenuBar
和JMenuItem
。 这些项目之一的听众像上面的那个。 我想在按下该项目时打开一个JDialog
。 每次我对表示JDialog
(扩展JDialog
的独立类)的类的代码进行更改时,都会发生变化,除非更改JDialog
的声明,否则不会显示更改。 因此,假设我有这样的声明:
JDialog ui = new RandomDialog();
如果我进行更改,则必须这样输入:
RandomDialog ui = new RandomDialog();
接下来,我必须再次提出:
JDialog ui = new RandomDialog();
依此类推...
通过将JDialog
更改为RandomDialog
,然后再更改为JDialog
您并没有更改代码,而是在更改文件的时间戳。 这将导致您的构建系统从Java文件重新构建.class
文件,构建.jar
文件,然后可能将其部署到服务器,具体取决于您的设置方式。
问题的原因是您的构建系统没有意识到此文件(带有JMenuItem
)依赖于另一个文件(带有RandomDialog
),因此对RandomDialog
更改不会导致重新生成。
为了解决这个问题,您将需要查看您的项目结构。 您尚未描述代码的构建方式。 通常,如果您使用IDE,它将使您能够管理项目依赖项。
在NetBeans中,Clean&Build通常会进行必要的重新构建。
确保启用“保存时编译”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.