Java8的Stream调试神器——StreamTrace调试工具

1、前言

在项目中往往充斥着各种各样的集合遍历操作,“看起来难受,写起来手酸”。自从 Java 8 开始,利用新增的Stream抽象,完美解决了以上问题。利用Stream进行数据处理,极大程度上简化了代码,提升了开发效率,但是Stream编程也给程序员的调试带来了极大的不方便,很多程序员可能都经历过调试Stream的痛苦。现在Idea 推出的StreamTrace功能,可以详细看到每一步操作的关系、结果,非常方便进行调试,为程序员带来了“福音”。

2、StreamTrace调试工具的使用

先熟悉一下,下面的代码,实现逻辑:第一步:筛选“cloth”类型产品,再筛选价格大于100的产品,产品类型转成整型(价格),最后输出。

/**
 * Stream调试小技巧
 */
public class StreamTraceTest {

    public static void main(String[] args) {
        //第一步:筛选“cloth”类型产品,再筛选价格大于100的产品,产品类型转成整型(价格),最后输出。
        Stream<Production> stream = initData().stream();
        stream.filter(p -> p.getName().equalsIgnoreCase("cloth") ? true : false)//(1)
                .filter(p -> p.getPrice()>100 ? true : false)
                .map(Production::getPrice)
                .forEach(i -> System.out.println(i));
    }
    public static List<Production> initData(){
        List<Production> list = new ArrayList<>();
        list.add(new Production("T-Shirt",43.34d));
        list.add(new Production("cloth",99.99d));
        list.add(new Production("shoe",123.8d));
        list.add(new Production("hat",26.5d));
        list.add(new Production("cloth",199.99d));
        list.add(new Production("shoe",32.5d));
        return list;
    }
}

在上述代码(1)处,设置断点,然后以debug模式运行,然后点击如下所示“按钮”,就可以进入到StreamTrace可视化调试视图,分为Flat Mode 和 Split Mode两种视图,如下所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个调试小技巧,可以为我们在调试Stream编程的代码中发挥很大的作用,留下笔记,以便后续的学习和使用。


版权声明:本文为hou_ge原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。