在IntelliJ IDEA中是否有一种方法可以在由Lombok生成的setter方法中设置断点?
这在某些调试场景中非常有用,例如查看何时从Hibernate这样的框架调用setter。
实际上,生成的setter方法显示在IntelliJ IDEA的结构视图中(Lombok插件正在使用)。但我还没有找到通过上下文菜单设置断点之类的方法。
发布于 2014-07-15 08:11:25
据我理解,您不能这样做,因为lombok正在变异您的字节码,其方式是变异代码没有自动生成部件的行号。
这样做的目的是让源代码行始终与字节码匹配。如果它们不匹配,则当您将断点放置在行上但执行没有停止或停止在其他地方(因为行号不匹配)时,您可能会遇到这样的情况。
但作为交换,Lombok失去了调试生成代码的能力(您不能在没有行号的行上放置断点)。您必须依赖一个事实,即生成的代码是正确的。
发布于 2016-01-23 13:17:01
作为解决办法,您可以使用Java 。在这种情况下,字段的每次访问/修改都会导致一个断点。
这种方法的缺点是在直接访问/修改字段时或使用getter/setter方法时都会得到线程挂起。
但是,当您使用setter方法捕获断点时,IDEA还会在变量窗口中显示一个参数(与用于监视点的字段的名称相同),并且断点不是显示在字段的行中,而是显示在类的行中。

下面的简短说明“如何创建字段观察点”是从https://www.jetbrains.com/idea/help/creating-field-watchpoints.html复制的
发布于 2017-12-28 09:44:06
断点作用于隐式函数。delombok特性允许生成隐式实现(调试后可以/应该恢复原始更改)。要实现隐式实现,只需右键单击类名并选择以下菜单项:

https://stackoverflow.com/questions/24751922
复制相似问题