如何在Java语言中加载应用程序时,设置标志以设置仅显示一条消息的条件。
谢谢, 大卫
答案 0 :(得分:5)
只有一个boolean
字段,您可以相应地设置true
或false
。
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
}