我在互联网上的某个地方阅读一些代码,并且看到了这个有趣的文章,这引起了我的兴趣,我很好奇它的工作原理。
有一个名为ResourceManager的类,如下所示:
public class ResourceManager {
private static final ResourceManager INSTANCE = new ResourceManager();
public static ResourceManager getInstance() {
return INSTANCE;
}
}
(它里面还有很多其他东西,但我认为没有必要包括在内)。但是,我发现有趣的是,作者中没有包含构造函数。实际上,在他的主要方法中,他仅对该类进行一个引用,而不是创建一个新对象,而只是编写了一个:
ResourceManager.getInstance().etc();
我以前从未见过这样的编码。我必须修改它,因为我需要使用ResourceManager对象,所以我要做的是:
ResourceManager res = ResourceManager.getInstance();
哪个工作得很好。但是,我仍然不完全了解这里发生了什么。没有构造函数的情况下如何创建此类?
最佳答案
这就是singleton pattern,这意味着将永远只有一个类ResourceManager
的实例(构造函数实际上应该是private
来强制执行此操作)。
但是,我仍然不完全了解这里发生了什么。没有构造函数的情况下如何创建此类?
如果您未明确编写构造函数,则Java将自动插入default constructor(假设超类也具有默认构造函数)。
关于java - 设置实例而不是创建新对象是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27761915/