我有以下代码:
Matcher matchDays = m_daysRegex.matcher(e.getKey());
if (matchDays.matches()){
...
}
e.getKey()
是“周一至周五”。
现在,我已经执行了第一行并站在if表达式上。使用监视窗口我评估matchDays.matches()
表达式,然后在matchDays
的各种方法上添加一些监视。然后使用相同的监视窗口,我评估matchDays = m_daysRegex.matcher("Mon,Fri")
和matchDays.matches()
表达式,看看会发生什么。不幸的是,监视窗口不会自行刷新,并且没有明确的按钮来执行此操作:
在上图中,请注意matchDays.group(0)
如何显示“周一,周五”,但matchDays.group(1)
显示“周一至周五”。这是因为我手动刷新了前者,但所有其余的仍显示旧值。我必须手动刷新它们,这很烦人。
我做错了吗?有没有正确的方法,所以手表表达式会自动刷新?或者有没有办法刷新整个观察窗口?
感谢。
答案 0 :(得分:11)
在IntelliJ中更改运行时变量的值:
答案 1 :(得分:3)
无法自动刷新它们,因为刷新需要调用实际的方法,这些方法可能会对调试器和应用程序的语义产生副作用。简单的手表值会自动刷新。
答案 2 :(得分:1)
添加到@Hari Rao
我想提到的一件小事很重要,因为它很容易忘记,请确保您要修改的变量本身是var而不是val
否则,您将获得“设置值”为灰色。