![](/img/trans.png)
[英]Can't create instance of class in Java: “X() has private access in X”
[英]Can't create instance - Constructor has private access
我嘗試使用Desktop desktop = new Desktop();
創建 Desktop Class 的實例Desktop desktop = new Desktop();
但我收到錯誤Desktop() has private access in Desktop
但在Java 文檔中,桌面類聲明為 public.like 這樣..
公共類桌面擴展對象
所以既然是公開的。 也不是靜態的。 那么為什么我不能創建它的實例呢? 我知道我可以使用Desktop desktop = Desktop.getDesktop();
但我不明白為什么我不能創建桌面類的實例。
此消息意味着Desktop()
(構造函數)在類中是私有的。 如果您查看文檔,您將找不到任何可以使用的公共構造函數。 因此,您需要使用此靜態方法來創建一個實例(順便說一句,這在您的問題中略有不正確):
Desktop desktop = Desktop.getDesktop();
看一下文檔:
Desktop 類允許 Java 應用程序啟動在本機桌面上注冊的關聯應用程序來處理 URI 或文件。
Desktop
對象代表用戶的本機桌面。 它不是一個可以創建多個實例的“普通”對象,因為只有一個桌面並且它必須鏈接到操作系統的許多東西。 您不必擔心創建此對象。 Java 庫將負責創建此對象並將其連接到操作系統。
這就是您無法創建實例的原因。 並且此類的開發人員確保您無法創建此類的實例的方法是將構造函數設置為private
。 這就是錯誤Desktop() has private access in Desktop
含義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.