首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 自定義 Object 類導致系統 java.lang.Object 衝突無法訪問

     編輯:程式設計綜合問答

錯誤原因

項目中**自行創建了名為 `Object` 的類** (如 `public class Object {}`),導致:

  • 本包內無包名引用 `Object` 解析為自定義類,而非 `java.lang.Object`。
  • 系統類 `java.lang.Object` 被遮蔽,無法直接訪問其方法 (`wait/notify/equals/hashCode` 等)。
  • 編譯器報錯:`cannot access Object` / `class file for java.lang.Object not found`。< /li>

解決方案

  1. 重命名自定義類:改為有業務含義的名稱 (如 `Entity`、`DomainObject`、`BaseModel`)。
  2. 使用全限定名 (臨時變通):
    java.lang.Object obj = new java.lang.Object(); // 強制指定系統 Object
    
  3. 檢查導入語句:刪除 `import your.package.Object;`,確保 `import java.lang.*;` 隱式生效。< /li>

    命名規範建議

    • **嚴禁**使用 Java 核心庫類名 (`Object`, `String`, `System`, `Exception`, `List`, `Map` 等) 作為自定義類名。
    • 使用 IDE 重構重命名 (Shift+F6) 可自動更新所有引用。< /li>
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved