錯誤訊息結構解析
MouseFrameText.java:17: error: bad operand types for binary operator '+'
squares=new ArrayList<>();
^
first type: ArrayList<>
second type: void
1 error
- `MouseFrameText.java:17`:檔案名與行號。
- `error:`:錯誤等級(error 必須修復,warning 可暫忽)。
- `bad operand types for binary operator '+'`:錯誤描述(此處為泛型鑽石運算子 `<>` 用法錯誤)。
- `^`:標記錯誤位置。
- `first type / second type`:型別不匹配詳情。
本例具體錯誤
- Java 版本不支援鑽石運算子:`new ArrayList<>()` 需 Java 7+。若專案設為 Java 6 或更早,編譯失敗。
- **修正**:`new ArrayList()` 顯式指定型別參數,或升級專案 JDK 版本。
- 匯入缺失:`ArrayList`、`Rectangle2D`、`Point2D` 等需正確 `import`。
- IDE 顏色標示:紅色波浪線 = 編譯錯誤,黃色 = 警告。滑鼠懸停查看詳細訊息。
通用除錯步驟
- **看第一個錯誤**:後續錯誤常為連鎖反應。
- **雙擊錯誤列表項目**:IDE 自動跳轉到對應行。
- **設定斷點**:在可疑行左側雙擊打紅點,Debug 模式執行,逐行觀察變數。
- **善用快速修復**:Alt+Enter (IntelliJ) / Ctrl+1 (Eclipse) 套用建議修正。
程式碼規範建議
- 類別名大寫開頭:`MouseFrameText` → `MouseFrameDemo`。
- 欄位私有化、提供存取器。
- 匯入具體類別,避免 `import java.awt.*;`。
- 使用 Java 8+ Lambda 簡化匿名內部類:`addMouseListener(e -> { ... });`
結論
編譯錯誤訊息已精確指明位置與原因。學會閱讀錯誤訊息、設定斷點、使用 IDE 快速修復,是從「看不懂」到「獨立解決」的關鍵。