博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
看源码,我为什么推荐IDEA?
阅读量:5311 次
发布时间:2019-06-14

本文共 1049 字,大约阅读时间需要 3 分钟。

1.条件断点

看源码的时候,经常遇到这个情况,源码中有个for循环,关键是这个list的size有时候长达数百个.但是我们只想debug一种情况.肥朝就曾经见过,在for循环中打了断点,一直按跳过,按了数十下之后.才找到自己想debug的值.这样效率不高

比如下文这个

1@Test 2public void testList() throws Exception {
3 List
list = Arrays.asList(1,2,3,4,5,6,7,8,9,10); 4 for (Integer integer : list) {
5 System.out.println(integer); 6 } 7}

如果你想debug数字10这种情况,如果你不知道条件断点,那么你可能要一直点9次跳过.我们来看一下条件断点的使用

 

看源码,我为什么推荐IDEA?

 这样,就只有满足条件的时候才会进入断点了,告别无效的小手一抖!

2.强制返回值

比如SpringBoot中这个打印Banner的.我们想调试多种情况.就可以利用这个Force Return,这样方便我们调试源码中的多种分支流程

看源码,我为什么推荐IDEA?

 3.模拟异常

在做业务开发中,我们有时需要模拟某个方法抛出异常,看看自己的代码是不是像肥朝一样可靠得一逼.但是你每次去写死一个异常,然后再删掉,这种低效的方式有违极客精神.那么我们如果让一个方法抛出异常呢?

 

看源码,我为什么推荐IDEA?

 不过要注意的一点是,这个功能印象中是IDEA 2018年以后的版本才有的功能.

4.Evaluate Expression

比如我们看源码时遇到这个一个场景,这里有一个byte[],但是我们就想看一下这个的值到底是啥.

 

看源码,我为什么推荐IDEA?

 那么我们可以这么操作一波

看源码,我为什么推荐IDEA?

 

 

这个功能的使用场景非常的广,通过这个功能,可以在看源码时,给某个变量赋我们要想的值,从而改变代码的分支走向等等.总之,这个是肥朝看源码中,使用频率最高的功能之一.更多场景,等待老司机们自己调教!

5.toString的坑(重点)

相信看过Dubbo源码的朋友都会遇到过这个一个坑.也就是你把断点打在下面图示的第一个箭头的时候,是无法进入init()方法的.但是你把断点打在第二个箭头也就是init()方法的时候,是能进入的.曾经也有不少人问过这个问题.

 

看源码,我为什么推荐IDEA?

 

看源码,我为什么推荐IDEA?

 当然除了这个坑之外,也有类似的坑,如下

看源码,我为什么推荐IDEA?

 

 

所以这个idea的默认设置.建议在一定条件下还是关闭

转载于:https://www.cnblogs.com/CQqf2019/p/10953729.html

你可能感兴趣的文章
Python Base Five
查看>>
141. Linked List Cycle
查看>>
JAVA-初步认识-常用对象API(集合框架-Map集合-hashmap存储自定义对象)
查看>>
线程池的堆栈问题
查看>>
浅析C#中的事件
查看>>
static和extern关键字 对函数的作用
查看>>
2012.05.15
查看>>
python 数据分析2
查看>>
unity与android交互总结
查看>>
法线贴图是用来解决低模的细节表现问题
查看>>
echarts地图中城市与省份之间的切换
查看>>
Maven学习小结(四 聚合与继承)
查看>>
python_excel_读写(转载)
查看>>
Meanshift均值漂移算法
查看>>
[转载]JavaScript基础知识细节
查看>>
神经网络语言模型NNLM
查看>>
Unity3d Editor使用cs文件与Plugins dll文件冲突的问题
查看>>
【opencv】opencv图像识别的一些基础的基础函数的使用方法
查看>>
[转载] 达特茅斯学院 Dartmouth College
查看>>
swift 值类型和引用类型
查看>>