1
我想要一个包含多个静态变量的类,它们只会根据需要进行初始化。根据需要初始化多个不带静态嵌套类的静态变量?
public class Messages {
public static final String message1 = init1();
public static final String message2 = init2();
}
所以,当某个地方在代码中我引用Messages.message1
我只想init1()
被调用。如果以后我访问Messages.message2
那么只有在那个时候应该调用init2()
。
我知道可以用Initialization-on-demand holder idiom来做到这一点,但如果您有很多字段,这很麻烦。
还有别的办法吗?
与您链接的内容类似,不是引用某个字段,而是调用一个方法。该方法将返回(并缓存)初始化值。 – 2014-10-26 15:46:00
枚举单例可能有帮助吗? – SMA 2014-10-26 15:49:40