如何使方法在应用程序的生命周期中仅运行一次

时间:2017-03-29 02:46:24

标签: java

我有一个用默认值填充文件的方法,我在构造函数中调用该方法。我希望这个方法只运行一次(我的意思是只有一次,所以当用户按下播放按钮/在eclipse中/那么该方法将不会在第二次按下时运行。

我尝试过类似的东西,但它不起作用:

private boolean defaultExecuted;
public synchronized void defaultStatsFile()
{
    if (defaultExecuted)
    {
        return;
    }
    else
    {
        fileReadNWrite.configWriter("panel1", "non-US incidents");
        fileReadNWrite.configWriter("panel2", "Hoaxes");
        fileReadNWrite.configWriter("panel3", "Under NUFORC investigation");
        fileReadNWrite.configWriter("panel4", "Likliest Shape");
        defaultExecuted = true;
    }

}

是否有更聪明的方法只填写一次文件?

如果有什么不明确的评论,我会回复。 任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

最好在静态块中填充数据

像:在Main类中包含适当的异常处理,这种方式无需依赖构造函数来加载文件中的默认数据。

static {
            fileReadNWrite.configWriter("panel1", "non-US incidents");
            fileReadNWrite.configWriter("panel2", "Hoaxes");
            fileReadNWrite.configWriter("panel3", "Under NUFORC investigation");
            fileReadNWrite.configWriter("panel4", "Likliest Shape");
            defaultExecuted = true;
}

答案 1 :(得分:-1)

因为所有代码都在类中,并且你可以有多个独立的类加载器,你不能在java中这样做,你需要一些java之外的资源。