gpt4 book ai didi

java - Initialization On Demand Holder 成语

转载 作者:行者123 更新时间:2023-11-28 02:11:24 26 4
gpt4 key购买 nike

这是网络上最常见的实现方式

private static class LazySomethingHolder {
public static Something something = new Something();
}

public static Something getInstance() {
return LazySomethingHolder.something;
}

以下更简单的变体是否正确,如果不正确,它有什么问题?该问题是 Java 特有的还是 C++ 中也存在?

public static Something getInstance() {
private static Something something = new Something();
return something;
}

最佳答案

Java 中不能有静态局部变量。

更简单的选择是

private static final Something something = new Something();

public static Something getInstance() {
return something;
}

或者我的偏好。

enum Something {
INSTANCE;
}

这些模式的唯一问题是,如果您有多个要延迟加载的实例,则每个实例都需要有一个类,否则加载一个就意味着加载所有实例。

关于java - Initialization On Demand Holder 成语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35551393/

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