gpt4 book ai didi

java - 在没有静态嵌套类的情况下按需初始化多个静态变量?

转载 作者:行者123 更新时间:2023-11-30 03:42:17 26 4
gpt4 key购买 nike

我想要一个包含多个静态变量的类,这些变量仅根据需要进行初始化。

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来做到这一点,但是如果您有很多字段,这会很麻烦。

还有别的办法吗?

最佳答案

延迟初始化最常见的方式是在 getter 方法中初始化:

public class Messages {
private static String message1;
public static String getMessage1() {
if (message1 == null)
message1 = init1();
return message1;
}
}

如果您想要的是 public final static 字段,那么在 Java 中无法实现它们的单独初始化。所有类成员都一起初始化。

关于java - 在没有静态嵌套类的情况下按需初始化多个静态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26574778/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com