IntelliJ idea evaluate expression

介绍一个idea的debug神器evaluate expression,evaluate expression是idea一个在debug模式下可以动态执行代码的工具,甚至还能动态修改该次代码运行时变量的值,利用这个工具我们在debug的时候可以执行我们代码中的方法,查看变量的值

深度截图_选择区域_20181111163648.png-15.1kB)

我们只需要在expression写java代码即可,现在写个简单的demo演示下这个工具的强大

public class Main {

    public static void main(String[] args) {
	// write your code here
        int a = 1;
        int b = 2;
        System.out.println(add(a,b));

    }

    public static int add(int a,int b){
        return a+b;
    }
}

现在有个简单的代码,计算a+b的值并且打印出来,我们在实际项目中基本上是不可能使用Println这种控制台打印方式的,都会使用log4j这类日志组件来打印运行日志,我们在debug的时候就是想知道add这个方法返回的内容是什么,因为是直接调用了方法,debug的时候又无法通过变量的方式查看结果值,使用打印日志的方式打印出来再去看日志文件又显得比较麻烦,这时候evaluate expression就可以发挥他的作用了

深度截图_选择区域_20181111164528.png-15.9kB

我们直接调用add(a,b)方法就可以得到结果,甚至我们还可以填入不同的参数,比如

深度截图_选择区域_20181111164626.png-15.8kB

深度截图_选择区域_20181111164948.png-16.8kB

而且这里填入的参数可以是当前运行方法的所有的变量,想怎么玩怎么玩,只要是在原有代码基础上能够执行的代码在这里都可以得到结果

在看看动态修改变量值的功能,这段代码运行后会在控制台打印出3,我们现在sout这行打个断点,然后把a的值改成4

深度截图_选择区域_20181111165148.png-77.4kB

然后过掉这个断点,看看最后打印的值

深度截图_选择区域_20181111165246.png-38.8kB

可以看到最后的值已经变成6了

这种修改变量的方法在这一次debug下会一直生效,我们在平时开发web项目的时候,使用debug模式启动了一次tomcat容器,那么使用evaluate expression修改的变量值在这一次tomcat运行下都是会生效的

更多的可以参考官网:Evaluating Expressions

posted @ 2018-11-11 17:08  NullPointerExcetion  阅读(2899)  评论(1编辑  收藏  举报