如何在IntelliJ中调试时修改变量值,以便各自的手表自动更新?

时间:2012-08-10 10:22:07

标签: debugging intellij-idea

我有以下代码:

Matcher matchDays = m_daysRegex.matcher(e.getKey());
if (matchDays.matches()){
...
}

e.getKey()是“周一至周五”。

现在,我已经执行了第一行并站在if表达式上。使用监视窗口我评估matchDays.matches()表达式,然后在matchDays的各种方法上添加一些监视。然后使用相同的监视窗口,我评估matchDays = m_daysRegex.matcher("Mon,Fri")matchDays.matches()表达式,看看会发生什么。不幸的是,监视窗口不会自行刷新,并且没有明确的按钮来执行此操作: enter image description here

在上图中,请注意matchDays.group(0)如何显示“周一,周五”,但matchDays.group(1)显示“周一至周五”。这是因为我手动刷新了前者,但所有其余的仍显示旧值。我必须手动刷新它们,这很烦人。

我做错了吗?有没有正确的方法,所以手表表达式会自动刷新?或者有没有办法刷新整个观察窗口?

感谢。

3 个答案:

答案 0 :(得分:11)

在IntelliJ中更改运行时变量的值:

  1. the Variables window
  2. 中找到变量
  3. 右键单击并选择" 设置值... "。
  4. 更新值,然后按Enter键。

答案 1 :(得分:3)

无法自动刷新它们,因为刷新需要调用实际的方法,这些方法可能会对调试器和应用程序的语义产生副作用。简单的手表值会自动刷新。

另请参阅similar request in YouTrack

答案 2 :(得分:1)

添加到@Hari Rao

我想提到的一件小事很重要,因为它很容易忘记,请确保您要修改的变量本身是var而不是val

否则,您将获得“设置值”为灰色。