idea调试小技巧

调试过程中更改变量值

我们在调试过程中,可以通过更改原本的变量值,来让变量满足要求,从而满足某个条件,看下最终条件的输出效果

比如下面的代码

import java.awt.image.ImageProducer;
import java.util.HashMap;
import java.util.Map;

public class test_aa {

    // 私有构造函数,防止外部实例化
    private test_aa() {
        throw new AssertionError("This class should not be instantiated");
    }

    // 静态常量
    public static double PI;

    public static String name = "hello";

    public static HashMap<String, Integer> map = new HashMap<>();
}

class Test {
    public static void main(String[] args) {
        test_aa.map.put("a", 1);
        test_aa.map.put("b", 2);
        double a= test_aa.PI;
        if (a == 3.14) {
            System.out.println("ok");
        }

        for (Map.Entry<String, Integer> entry : test_aa.map.entrySet()) {
            if (entry.getKey().equals("a") || entry.getValue()==3) {
                System.out.println(entry.getValue());
            }
        }
    }
}

修改普通常量

点击debug调试,走到变量a这里,发现a不满足等于3.14的条件,但是我们还是想走这个for循环,就可以通过点击变量中set value按钮进行值的设置

修改之后,if可以进入,正常输出ok

修改map类型值

继续往下走,进入到map类型的判断语句,发现当前key为a时,value=1,不符合条件。想故技重施修改为value为3,发现使用set value是无法修改成功的

这是因为要修改map中某个键对应的值,你不能直接在“Variables”窗口中双击值进行修改,因为这通常用于基本类型和字符串。对于Map,你需要直接在“ Watches ”窗口或者“Evaluate Expression”(评估表达式)窗口中输入命令来修改。

比如,如果你的Map名为map,你想修改键为"name"的值,可以在这些窗口中输入:map.put("name", "new_value"),然后执行这个表达式。

  • 以评估表达式窗口为例:

执行后,a的value就变成了3,可以正常运行到if中

  • Watches 窗口的方式
  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值