2017-07-27 286 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重构的方法。谢谢! –