【发布时间】:2014-12-30 14:53:01
【问题描述】:
我正在开发一个使用一大类常量的 Java 项目,例如:
public final class Settings {
public static final int PORT_1 = 8888;
public static final int PORT_2 = 8889;
...
}
现在,这些常量的某些值在编译时不再可用,因此我需要一种在应用程序启动时“初始化”它们的方法(例如,从 args[] 开始)。一旦初始化,就不应该改变它们。我对java不是很熟练,我该如何以可接受的方式做到这一点?
我曾想过使用单例与“一次性”设置方法之类的方法,如果多次调用它会引发异常,但它接缝太老套了...
【问题讨论】:
-
final变量只能分配一次。您可以从args[]分配一次。 -
这些常量是完美的,在 jvm 的生命周期内永远不会改变。你为什么要考虑使用 Singleton?
-
@MarounMaroun 如果我让它们不是静态的并且在我的主类中,我可以从 args[] 分配它们,但是如果它们在 Setting 类中,我该怎么做?我不能把它们留在那里,否则它甚至不会编译