Java 8的Stream操作不好調(diào)試?試試這個方法吧!
Stream操作是Java 8推出的一大亮點!雖然java.util.stream很強大,但依然還是有很多開發(fā)者在實際工作中很少使用,其中吐槽最多的一個原因就是不好調(diào)試,一開始確實是這樣,因為stream這樣的流式操作在DEBUG的時候,是一行代碼,直接下一步的時候,其實一下就過去了好多操作,這樣我們就很難判斷到底是里面的哪一行出了問題。不過,現(xiàn)在的話,在強大的IDEA插件支持下,stream的調(diào)試其實也沒那么難了,下面就來學習一下在IDEA中如何調(diào)試stream操作吧。
插件:Java Stream Debugger

如果你用的IDEA版本比較新的話,這個插件已經(jīng)是自帶的了,就不需要安裝了。如果還沒安裝的話,就手工安裝一下,然后繼續(xù)下面的操作。
本文收錄在了我正在連載的《玩轉(zhuǎn)IDEA專欄》,該系列該用電子書的方式編寫,如果想要沉浸式閱讀學習的話,可以訪問Web版本:https://www.didispace.com/idea-tips/
https://www.didispace.com/idea-tips/
調(diào)試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,所以當出現(xiàn)問題的時候,可能不知道具體是哪個filter中出了問題。
借助強大的IDEA,我們在遇到stream的時候,只需要點擊下圖中的按鈕:

此時會彈出一個Stream操作的跟蹤窗口:

該窗口中的標簽就是這個stream操作的每一步,我們可以通過點擊標簽去查看每一步執(zhí)行前和執(zhí)行后的結(jié)果去判斷這里的filter是否執(zhí)行正確。
是不是一下感覺簡單了很多呢?好了,今天的分享就到這里,如果你還沒有用過這個調(diào)試功能的話, 趕緊打開IDEA試一試吧!如果您學習過程中如遇困難?可以加入我們超高質(zhì)量的技術交流群(點擊加群),參與交流與討論,更好的學習與進步!另外,如果你最近想跳槽的話,年前我花了2周時間收集了一波大廠面經(jīng),節(jié)后準備跳槽的可以點擊這里領取!
推薦閱讀
你好,我是程序猿DD,10年開發(fā)老司機、阿里云MVP、騰訊云TVP、出過書創(chuàng)過業(yè)、國企4年互聯(lián)網(wǎng)6年。從普通開發(fā)到架構(gòu)師、再到合伙人。一路過來,給我最深的感受就是一定要不斷學習并關注前沿。只要你能堅持下來,多思考、少抱怨、勤動手,就很容易實現(xiàn)彎道超車!所以,不要問我現(xiàn)在干什么是否來得及。如果你看好一個事情,一定是堅持了才能看到希望,而不是看到希望才去堅持。相信我,只要堅持下來,你一定比現(xiàn)在更好!如果你還沒什么方向,可以先關注我,這里會經(jīng)常分享一些前沿資訊,幫你積累彎道超車的資本。

