gpt4 book ai didi

java - 这是确保 Java 中只存在对象的单个实例的有效方法吗?

转载 作者:搜寻专家 更新时间:2023-11-01 04:03:17 25 4
gpt4 key购买 nike

我在使用 Mongodb 时遇到了一些奇怪的错误,在 Mongodb 中,您应该维护 Mongo 单例。我只是想确保这实际上是有效的。

public class DBManager {
public static Mongo mongoSingleton = null;

public static synchronized void getMongo(){
if(mongoSingleton == null){
mongoSingleton = new Mongo();
}
return mongoSingleton;
}
}

谢谢!

最佳答案

您必须将公共(public)成员 mongoSingleton 设置为私有(private)成员并隐藏默认构造函数

所以

private static Mongo mongoSingleton = null;

private Mongo() {

}

类 Mongo 实现

public class Mongo {
private static volatile Mongo instance;
private Mongo() {
...
}

public static Mongo getInstance() {
if (instance == null) {
synchronized (Mongo.class) {
if (instance == null) { // yes double check
instance = new Mongo();
}
}
}

return instance;
}
}

用法

Mongo.getInstance();

关于java - 这是确保 Java 中只存在对象的单个实例的有效方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10729249/

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