IntelliJ调试器:能否在断点处自动应用表达式或修改返回值?
在IntelliJ调试器中自动实现变量修改与方法强制返回的方案
别担心,完全可以做到!IntelliJ的调试器自带了强大的断点自定义功能,哪怕你操作的是无法修改代码的反编译类,也能轻松实现你要的两个自动操作,下面给你一步步拆解:
一、自动将变量result设置为true
- 先在你想要触发赋值的位置打个断点——比如
boolean result = false;这一行,或者return result;这一行(看你希望在代码执行到哪个阶段把result改成true)。 - 右键点击断点的红色圆点,打开断点设置面板。
- 在面板里找到**「执行表达式」**的输入框,直接输入
result = true。 - 勾选这个选项,这样每次断点触发时,调试器就会自动执行这个赋值操作。
- 如果不想程序在断点处停下来(只想偷偷完成赋值),可以把「暂停」(Suspend)选项改成None,这样程序会继续正常运行,但
result已经被改成true了。
二、让foo()方法自动返回true
这个可以用IntelliJ的「强制返回」功能来实现,步骤如下:
- 给
foo()方法设置一个返回断点:你可以右键点击方法定义行(比如public boolean foo()),选择「Toggle Method Breakpoint」,或者直接在方法的return result;行打普通断点。 - 右键打开断点设置面板,找到**「强制返回」**(Force return)的输入框,在这里输入
true。 - 勾选这个选项,调试器就会在方法准备返回时,强制替换返回值为
true,而不是原来的result变量值。 - 同样,如果不想程序暂停,把「暂停」选项改成None即可,全程自动完成。
小提示:如果你的foo()方法定义是void类型(看你给的代码示例写的是public void foo(),但内部又返回result,应该是笔误),那调整成对应返回类型的逻辑就行,操作思路是一样的。
内容的提问来源于stack exchange,提问作者NoobieNoob
相关产品推荐
相关产品推荐

