java - 如何避免在 ClassB 中创建 classA 的对象

标签 java

<分区>

我在面试中有一个问题:

假设我有一个 classA,我应该只在 classA 而不是在任何其他类中创建 classA 的对象,例如:

classA{
// some instructions

ClassA a = new ClassA();
}

ClassB{
//Some instructions

ClassA a1 = new ClassA(); // Here I should throw a compilation or runtime error.
}

我通过添加私有(private)构造函数来告诉我,但他告诉我我们应该有能力在同一个类中创建多个对象。我可以做这个吗?

最佳答案

使其构造函数私有(private):

private classA() {}

这禁止在其他任何地方调用它。
例如私有(private)构造函数用于 Utility classesStatic factory
更新:正如@Arkadiy 所注意到的,它不会限制您可以创建的实例数量。

关于java - 如何避免在 ClassB 中创建 classA 的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46911849/

相关文章:

java - 延迟加载问题何时将子项添加到父项 - hibernate

java - WebElement 的 setAttribute() 方法

java - 退出腻子后如何使spring boot应用程序保持 Activity 状态

java - 请求中缺少 token

java - 如何从文件中获取特定行(两个部分之间)?

java - 我如何在 html 页面中找到带有标签表的元素

java - 在 Google App Engine 上从 Java 7 迁移到 Java 8 时出现内存错误/500 错误

java - 1 个错误! "Main.java:30: error: cannot find symbol"

java - OSGi:Apache Felix Maven 捆绑插件和 Javadoc

java - 从数组中返回数字序列?