【发布时间】:2016-04-22 02:01:07
【问题描述】:
每当我们在 Java 中调用构造函数时,它都会创建一个新对象并在最后(新创建的对象)返回其引用。
Java 构造函数是否有可能不创建新对象,而是返回对已创建对象的引用?
// Is it possible that myObject is not a new object, its already existing object
MyClass myObject = new MyClass();
我有一个类的对象列表,并且基于构造函数中的几个参数,有时我不创建新对象更有效,而是选择一个已经存在的对象。有没有其他办法?
【问题讨论】:
-
一句话,没有。这个问题的起源是什么?
-
不,这是不可能的。但是可以使用对象池或使用创建模式并重用以前创建的对象。
-
只是想让程序更高效,不想使用池。我想可能会有类似的东西。
-
创建一个私有构造函数和一个静态方法,该方法扮演您要创建的对象的工厂角色。然后,如果您需要创建一个新对象,请调用构造函数并返回其结果(新对象)。如果您不需要新对象,则返回一个已存储在某个静态变量中的现有对象。
标签: java oop object constructor new-operator