首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在用Lombok生成的IntelliJ IDEA中设置setter方法中的断点?

如何在用Lombok生成的IntelliJ IDEA中设置setter方法中的断点?
EN

Stack Overflow用户
提问于 2014-07-15 07:04:56
回答 5查看 9.4K关注 0票数 24

IntelliJ IDEA中是否有一种方法可以在由Lombok生成的setter方法中设置断点

这在某些调试场景中非常有用,例如查看何时从Hibernate这样的框架调用setter。

实际上,生成的setter方法显示在IntelliJ IDEA的结构视图中(Lombok插件正在使用)。但我还没有找到通过上下文菜单设置断点之类的方法。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-07-15 08:11:25

据我理解,您不能这样做,因为lombok正在变异您的字节码,其方式是变异代码没有自动生成部件的行号。

这样做的目的是让源代码行始终与字节码匹配。如果它们不匹配,则当您将断点放置在行上但执行没有停止或停止在其他地方(因为行号不匹配)时,您可能会遇到这样的情况。

但作为交换,Lombok失去了调试生成代码的能力(您不能在没有行号的行上放置断点)。您必须依赖一个事实,即生成的代码是正确的。

票数 9
EN

Stack Overflow用户

发布于 2016-01-23 13:17:01

作为解决办法,您可以使用Java 。在这种情况下,字段的每次访问/修改都会导致一个断点。

这种方法的缺点是在直接访问/修改字段时或使用getter/setter方法时都会得到线程挂起。

但是,当您使用setter方法捕获断点时,IDEA还会在变量窗口中显示一个参数(与用于监视点的字段的名称相同),并且断点不是显示在字段的行中,而是显示在类的行中。

下面的简短说明“如何创建字段观察点”是从https://www.jetbrains.com/idea/help/creating-field-watchpoints.html复制的

  1. 在主菜单上,选择Run \ View断点,或按Ctrl+Shift+F8。
  2. 在打开的“断点”对话框中,单击“添加(加图标)”按钮。
  3. 从下拉列表中选择字段监视点:"Java“
  4. 在打开的“添加字段监视点”对话框中,指定以下内容: 包含所需字段的类的完全限定名。您可以手动键入它,或者单击“浏览按钮”,然后按名称查找所需的类,或者从项目中查找所需的类。 字段名.您可以手动键入它,也可以单击“浏览按钮”,然后从所选类中的字段列表中选择所需的字段。
  5. 此外,您还可以设置其他选项,如字段访问(用于getter)或字段修改(用于setter)。
票数 21
EN

Stack Overflow用户

发布于 2017-12-28 09:44:06

断点作用于隐式函数。delombok特性允许生成隐式实现(调试后可以/应该恢复原始更改)。要实现隐式实现,只需右键单击类名并选择以下菜单项:

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24751922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档