2017-07-27 52 views
4

有沒有人知道如何使用Eclipse或IntelliJ IDEA在以下中設置斷點?如何調試lombok對象

import lombok.AllArgsConstructor; 
import lombok.Data; 
import lombok.ToString; 

@ToString 
@AllArgsConstructor 
@Data 
public class Person { 
    private String lastName; 
    private String firstName; 
} 

編輯:

如果可能的話,我想停止,只有當toString()被調用。

+1

使用[字段斷點](http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fbreakpoints%2Fref-access_option.htm)或「delombok」類 – 2017-07-27 06:06:13

+0

可能的重複:https://stackoverflow.com/questions/24751922/how-to-set-a-breakpoint-in-a-setter-method-in-intellij-idea-that-is-generated -wi?rq = 1 – 2017-07-27 06:08:37

+0

[如何在使用Lombok生成的IntelliJ IDEA的setter方法中設置斷點?](https://stackoverflow.com/questions/24751922/how-to-set-a -interpoint-in-a-setter-method-in-intellij-idea-that-is-generated-wi) –

回答

5

你問關於Eclipse和IntelliJ IDEA的,答案有很大的不同:

  • 在Eclipse中,就在法單擊成員查看和使用「切換方法斷點」。
  • 在IDEA中,有no solution,但有很好的解決方法(見下文)。

嗯,如果可能,我不想更改源代碼。

你肯定是用version control,所以沒有什麼可以出錯,對吧?如果沒有,那麼請儘快使用它,因爲我無法想象沒有它的任何工作。

的解決方法是非常容易的,儘管有幾個步驟:

  1. 首先,使用版本控制,以確保您不會失去目前的狀態(我通常只是用移動都記錄下來「重新掃描」和「舞臺更改「在git-gui)。
  2. 執行「Refactor」 - >「Delombok」 - >「@ToString」(僅適用於IDEA)以及您希望進行調試的任何其他更改。
  3. 調試。
  4. 撤銷編輯器中的更改(如果可能)。
  5. 最後,使用版本控制來查看工作樹的狀態(git-gui中的「Rescan」),並且可能還原不需要的更改(git-gui中的「Commit」 - >「Revert changes」)和/或驗證工作樹的狀態。

除了調試,通常需要相當長的時間,每個步驟需要一兩秒鐘。所以幾乎沒有任何開銷。相信我,我一天做幾次臨時代碼更改。

+0

啊,我明白我們不能在IntelliJ上使用「Toggle method breakpoint」,因爲IntelliJ Lombok插件不能顯示Lombok重構的方法。謝謝! –