專案中某介面有 40 個實現類,除錯時如何快速定位到**實際執行的那個實現類**的具體方法?核心技巧:**在介面方法呼叫處下斷點,使用「Step Into (F7/Enter)」進入具體實現**。
service.doSomething() (service 為介面型別)。若只想在特定實現類 (如 `ServiceImplV3`) 觸發斷點:
// IntelliJ IDEA: 右鍵斷點 → Condition
this instanceof com.example.ServiceImplV3
// Eclipse: 斷點屬性 → Conditional
this instanceof com.example.ServiceImplV3
// 在介面預設方法或抽象類中加入
default void doSomething() {
System.out.println("實際執行類: " + this.getClass().getName());
// 或拋出例外獲取完整堆疊
// throw new RuntimeException("Trace");
}
40 個實現類通常意味著**策略模式過度使用**或**領域模型缺失**。建議重構:
介面多實現除錯:**呼叫處斷點 + Step Into** 即可精準進入具體實現。配合條件斷點可過濾特定實現。長期應重構減少實現類數量,提升可維護性。