为什么我不能创建Console类的对象?

时间:2012-06-24 09:07:41

标签: java oop

我正在尝试创建Console类的对象,但无法成功。我收到此错误“构造函数Console()不可见”。我也在文档中找不到任何构造函数。任何人都能解释一下吗?

5 个答案:

答案 0 :(得分:5)

Jon Skeet的回答是正确的:您应该使用System.console()来获取Console的一个实例。

原因是ConsoleSingleton design pattern的一个实现,当API的作者想要确保创建一个且只有一个类的实例时使用它。

答案 1 :(得分:2)

意味着直接创建实例。相反,请使用System.console()方法:

Console console = System.console();

答案 2 :(得分:1)

您无法创建Console对象,构造函数是私有的。

但是你可以用这种方式获得一个Console对象:

Console console = System.console();

查看javadoc了解更多信息。

答案 3 :(得分:1)

您不需要创建Console类的对象。这不是必需的。请从文档中阅读以下内容:

  

如果此虚拟机具有控制台,则它由a表示   这个类的唯一实例,可以通过调用获得   System.console()方法。如果没有可用的控制台设备那么   调用该方法将返回null。

因此,如果任何控制台设备可用于虚拟机,您将通过System.console()获取控制台。

答案 4 :(得分:0)

当构造函数是私有的时,无法明确地实例化控制台。您可以通过以下方式访问与JVM关联的控制台:

Console console = System.console();

请参阅文档here