查看原文
其他

Java 8的Stream操作不好调试?试试这个方法吧!

DD 程序猿DD 2022-07-01

Stream操作是Java 8推出的一大亮点!虽然java.util.stream很强大,但依然还是有很多开发者在实际工作中很少使用,其中吐槽最多的一个原因就是不好调试,一开始确实是这样,因为stream这样的流式操作在DEBUG的时候,是一行代码,直接下一步的时候,其实一下就过去了好多操作,这样我们就很难判断到底是里面的哪一行出了问题。不过,现在的话,在强大的IDEA插件支持下,stream的调试其实也没那么难了,下面就来学习一下在IDEA中如何调试stream操作吧。

插件:Java Stream Debugger

如果你用的IDEA版本比较新的话,这个插件已经是自带的了,就不需要安装了。如果还没安装的话,就手工安装一下,然后继续下面的操作。

本文收录在了我正在连载的《玩转IDEA专栏》,该系列该用电子书的方式编写,如果想要沉浸式阅读学习的话,可以访问Web版本:https://www.didispace.com/idea-tips/

https://www.didispace.com/idea-tips/

调试Stream操作

先来看下面这样的这段代码:

public class StreamTest {

    @Test
    void test() {
        List<String> list = List.of("blog.didispace.com""spring4all.com""openwrite.cn""www.didispace.com");

        List<String> result = list.stream()
                .filter(e -> e.contains("didispace.com"))
                .filter(e -> e.length() > 17)
                .toList();

        System.out.println(result);
    }

}

这段代码的逻辑是通过stream去过滤list集合中的元素,由于有两个filter,所以当出现问题的时候,可能不知道具体是哪个filter中出了问题。

借助强大的IDEA,我们在遇到stream的时候,只需要点击下图中的按钮:

此时会弹出一个Stream操作的跟踪窗口:

该窗口中的标签就是这个stream操作的每一步,我们可以通过点击标签去查看每一步执行前和执行后的结果去判断这里的filter是否执行正确。

是不是一下感觉简单了很多呢?好了,今天的分享就到这里,如果你还没有用过这个调试功能的话, 赶紧打开IDEA试一试吧!如果您学习过程中如遇困难?可以加入我们超高质量的技术交流群(点击加群),参与交流与讨论,更好的学习与进步!另外,如果你最近想跳槽的话,年前我花了2周时间收集了一波大厂面经,节后准备跳槽的可以点击这里领取

推荐阅读

··································

你好,我是程序猿DD,10年开发老司机、阿里云MVP、腾讯云TVP、出过书创过业、国企4年互联网6年。从普通开发到架构师、再到合伙人。一路过来,给我最深的感受就是一定要不断学习并关注前沿。只要你能坚持下来,多思考、少抱怨、勤动手,就很容易实现弯道超车!所以,不要问我现在干什么是否来得及。如果你看好一个事情,一定是坚持了才能看到希望,而不是看到希望才去坚持。相信我,只要坚持下来,你一定比现在更好!如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯,帮你积累弯道超车的资本。

点击领取2022最新10000T学习资料

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存