在Java中设置Flag

时间:2010-08-31 11:57:32

标签: java

如何在Java语言中加载应用程序时,设置标志以设置仅显示一条消息的条件。

谢谢, 大卫

4 个答案:

答案 0 :(得分:5)

只有一个boolean字段,您可以相应地设置truefalse

private boolean messageWasAlreadyDisplayed;

您可以在if语句中对其进行测试并进行相应处理。

if (!messageWasAlreadyDisplayed) {
    displayMessage();
    messageWasAlreadyDisplayed = true;
}

另见:

答案 1 :(得分:3)

您可以使用基于enum的全局标记存储,因为我们需要Singleton行为。它看起来像这样:

public enum Flag {
    APPLICATION_LOADED(false), NEED_SAVING(true), CAN_EXIT(false) /*, ... */;

    private boolean state;
    private Flag(boolean initialState) {
      this.state = initialState;
    }

    public boolean getState() {return state;}
    public void setState(boolean state) {this.state = state;}
}

并像这样使用

private void startApplication() {
  // perform startup sequence

  APPLICATION_LOADED.setState(true);
}

以后

private void showMessage(Flag flag) {
  if (flag.getState() == false) {
    // perform displaying
  }
}

答案 2 :(得分:2)

只需将显示代码直接放入main方法即可。因此它只在应用程序运行时执行。

答案 3 :(得分:1)

我认为这只意味着两次运行之间?所以只有在它第一次运行时。这可以通过将标志存储到文件来完成。一个很好的起点是使用java.util.Properties可以用来存储键值对。

这样的事情:

Properties properties = ... ; //initialize with the file 
String key = "msgAlreadyDisplayed";
if (properties.getProperty(key) == null) {
    //display the message
    properties.getProperty(key, "true");
    properties.save(....); //save to the file
}