无法创建实例 - 构造函数具有专用访问权限



我尝试使用Desktop desktop = new Desktop();但是我得到了错误Desktop() has private access in Desktop但是在java文档中,桌面类被声明为public.like this。。

公共类桌面扩展对象

因为它是公共的。也不是静态的。为什么我不能创建一个实例呢?我知道我可以Desktop desktop = Desktop.getDesktop();但我不明白为什么我不能创建Desktop类的实例。

此消息表示Desktop()(构造函数(在类中是私有的。如果您查看文档,您将找不到任何可以使用的公共构造函数。因此,您需要使用这个静态方法来创建一个实例(顺便说一句,这在您的问题中有点不正确(:

Desktop desktop = Desktop.getDesktop();

查看文档:

Desktop类允许Java应用程序启动关联在本机桌面上注册以处理URI或文件

Desktop对象表示用户的本地桌面。它不是一个可以创建许多实例的"普通"对象,因为只有一个桌面,它必须链接到操作系统的许多内容。你不应该担心创建这个对象。java库将负责创建这个对象并将其连接到操作系统。

这就是您无法创建实例的原因。该类的开发人员确保您不能创建该类的实例的方法是将构造函数设置为private。这就是错误Desktop() has private access in Desktop的含义。

最新更新