Stream操作是Java 8推出的一大亮點!雖然java.util.stream很強大,但依然還是有很多開發者在實際工作中很少使用,其中吐槽最多的一個原因就是不好調試,一開始確實是這樣,因為stream這樣的流式操作在DEBUG的時候,是一行代碼,直接下一步的時候,其實一下就過去了好多操作,這樣我 ...
Stream操作是Java 8推出的一大亮點!雖然java.util.stream
很強大,但依然還是有很多開發者在實際工作中很少使用,其中吐槽最多的一個原因就是不好調試,一開始確實是這樣,因為stream這樣的流式操作在DEBUG的時候,是一行代碼,直接下一步的時候,其實一下就過去了好多操作,這樣我們就很難判斷到底是裡面的哪一行出了問題。不過,現在的話,在強大的IDEA插件支持下,stream的調試其實也沒那麼難了,下麵就來學習一下在IDEA中如何調試stream操作吧。
插件:Java Stream Debugger
如果你用的IDEA版本比較新的話,這個插件已經是自帶的了,就不需要安裝了。如果還沒安裝的話,就手工安裝一下,然後繼續下麵的操作。
本文收錄在了我正在連載的《玩轉IDEA專欄》,該系列該用電子書的方式編寫,如果想要沉浸式閱讀學習的話,可以訪問Web版本: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試一試吧!如果您學習過程中如遇困難?可以加入我們超高質量的技術交流群,參與交流與討論,更好的學習與進步!
歡迎關註我的公眾號:程式猿DD。第一時間瞭解前沿行業消息、分享深度技術乾貨、獲取優質學習資源