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编程的代码中发挥很大的作用,留下笔记,以便后续的学习和使用。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/68712.html