gpt4 book ai didi

java - 单例类如何创建多个对象?

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

我从教程中获取了这个示例。
创建下面的类是为了限制在同一类中创建多个对象。

package interview;

public class Test1 {

private static Test1 tstObj = null;

private Test1() {
}

public static Test1 createObject() {
if (tstObj == null) {
tstObj = new Test1();
}
return tstObj;
}

public void display() {
System.out.println("Singleton class Example");
}
}

但是当我尝试从同一包中另一个类中的同一类创建多个对象时,我成功了。

package interview;

public class Test {

public static void main(String[] args) {
Test1 myobject = Test1.createObject();
myobject.display();
Test1 myobject1 = Test1.createObject();
myobject1.display();
Test1 myobject2 = Test1.createObject();
myobject2.display();
}
}

这是怎么发生的,还是我不理解多个对象创建的含义???
请帮忙。

最佳答案

您对 Test1#createObject() 的第二次和第三次调用实际上并未创建单例类 q.v 的另一个实例。构造函数的代码:

public static Test1 createObject() {
// create a single instance the first time around
if (tstObj == null) {
tstObj = new Test1();
}
// otherwise return the instance which already exists
return tstObj;
}

请仔细注意,if 语句仅在引用为 null 时实例化单例,理想情况下,这只应在您的应用第一次调用 createObject( )

关于java - 单例类如何创建多个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48636362/

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