我尝试使用创建桌面类的实例Desktop desktop = new Desktop();
但我得到了错误Desktop() has private access in Desktop
但是在java documentation桌面类中声明为public.like ..
公共类桌面扩展对象
所以它是公开的。而且都不是静态的。那为什么不能创建它的实例?我知道我可以用Desktop desktop = Desktop.getDesktop();
但是我不明白为什么我不能创建Desktop类的实例。
此消息表示Desktop()
(构造函数)在该类内部是私有的。如果您查看文档,将找不到可以使用的任何公共构造函数。因此,您需要使用this静态方法创建一个实例(在您的问题中稍有不正确):
Desktop desktop = Desktop.getDesktop();
看一下文档:
Desktop类允许Java应用程序启动关联在本机桌面上注册以处理URI或文件。
Desktop
对象代表用户的本机桌面。它不是可以创建许多实例的“普通”对象,因为只有一个桌面,并且它必须链接到操作系统的许多事物。您不必担心创建此对象。 Java库将负责创建该对象并将其连接到操作系统。
这就是为什么您不能创建实例的原因。此类的开发人员确保不能创建此类的实例的方式是将构造函数设置为private
。这就是错误Desktop() has private access in Desktop
的意思。