gpt4 book ai didi

java - 将某物设置为 INSTANCE 而不是创建新对象是什么意思?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:55:09 28 4
gpt4 key购买 nike

我在互联网上的某个地方阅读了一些代码,我看到了这个有趣的片段,它引起了我的兴趣,我很好奇它是如何工作的。

有一个名为 ResourceManager 的类,如下所示:

public class ResourceManager {
private static final ResourceManager INSTANCE = new ResourceManager();

public static ResourceManager getInstance() {

return INSTANCE;
}

}

(里面还有很多其他的东西,但我认为没有必要包括在内)。但是,我觉得有趣的是作者没有包含构造函数。事实上,在他的 main 方法中,他只引用了这个类,而不是创建一个他只是写的新对象:

ResourceManager.getInstance().etc();

我以前从未见过这样的编码。我必须修改它,因为我需要一个 ResourceManager 对象才能使用,所以我所做的是:

ResourceManager res = ResourceManager.getInstance();

效果非常好。但是,我仍然不完全理解这里发生了什么。这个类是如何在没有构造函数的情况下创建的?

最佳答案

这是 singleton pattern ,这意味着永远只有一个 ResourceManager 类的实例(构造函数实际上应该是 private 以强制执行此操作)。

However, I still don't entirely understand what is going on here. How is this class being created without a constructor?

如果你没有显式地写一个构造函数,Java 会自动插入一个 default constructor (假设父类(super class)也有默认构造函数)。

关于java - 将某物设置为 INSTANCE 而不是创建新对象是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27761915/

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