錯誤原因
項目中**自行創建了名為 `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>
解決方案
- 重命名自定義類:改為有業務含義的名稱 (如 `Entity`、`DomainObject`、`BaseModel`)。
- 使用全限定名 (臨時變通):
java.lang.Object obj = new java.lang.Object(); // 強制指定系統 Object
- 檢查導入語句:刪除 `import your.package.Object;`,確保 `import java.lang.*;` 隱式生效。< /li>
命名規範建議
- **嚴禁**使用 Java 核心庫類名 (`Object`, `String`, `System`, `Exception`, `List`, `Map` 等) 作為自定義類名。
- 使用 IDE 重構重命名 (Shift+F6) 可自動更新所有引用。< /li>