Stream API现在在实际开发中应用非常广泛,经常会遇到需要调试Stream API的场景,这篇文章主要讲解如何使用IDEA调试Stream
@Test
public void test(){
Stream.of(10, 20, 30, 40, 50).mapToInt(e->e*10)
.filter(e->e>200)
.forEach(System.out::println);
}
调试代码如上所示,这里简单的创建一个Stream,调用mapToInt对每个元素乘以10,然后通过filter过滤出结果大于200的打印出来,这个操作非常简单,本文主要讲解如何调试
如上图所示,先在第一行 打断点,然后点击debugRun,进入调试模式,此时点击图中红框所示的"Trace Current Stream Chain"按钮,出现下图:
会显示出Stream接口的全部操作,点击mapToInt,出现下图,得到mapToInt的结果
点击filter,出现下图,得到filter的结果
或者直接点击左下角的Flat Mode,出现下图,直接显示mapToInt,filter的结果
到此Stream API的调试讲解完成。
接下来讲解下 Optional
链式调用的调试方式
@Test
public void test1(){
String str = Optional.of("hello,world")
.map(e->e+"hi")
.map(e->e+"debug")
.map(e->e+"test").get();
System.out.println(str);
}
调试代码如上图所示,在第一行,打上断点,debug运行,如图:
发现"Trace Current Stream Chain"按钮是灰色的,不可点击,此时可以如图所示
选择:
Optional.of("hello,world")
.map(e->e+"hi")
.map(e->e+"debug")
.map(e->e+"test")
点击右键,选择Evaluate Expression
在接下来的弹窗点击Evaluate,即可得到计算的结果
这个Evaluate Expression可以在调试过程中,选择任意需要调试的代码,执行得到结果