Stream API現在在實際開發中應用非常廣泛,經常會遇到需要調試Stream API的場景,這篇文章主要講解如何使用IDEA調試Stream
@Testpublic void test(){Stream.of(10, 20, 30, 40, 50).mapToInt(e->e*10).filter(e->e>200).forEach(System.out::println);}
調試代碼如上所示,這里簡單的創建一個Stream,調用mapToInt對每個元素乘以10,然后通過filter過濾出結果大于200的打印出來,這個操作非常簡單,本文主要講解如何調試
如上圖所示,先在第一行?打斷點,然后點擊debugRun,進入調試模式,此時點擊圖中紅框所示的"Trace Current Stream Chain"按鈕,出現下圖:
?會顯示出Stream接口的全部操作,點擊mapToInt,出現下圖,得到mapToInt的結果
?點擊filter,出現下圖,得到filter的結果
?或者直接點擊左下角的Flat Mode,出現下圖,直接顯示mapToInt,filter的結果
?到此Stream API的調試講解完成。
接下來講解下?Optional
?鏈式調用的調試方式
@Testpublic void test1(){String str = Optional.of("hello,world").map(e->e+"hi").map(e->e+"debug").map(e->e+"test").get();System.out.println(str);}
調試代碼如上圖所示,在第一行,打上斷點,debug運行,如圖:
?發現"Trace Current Stream Chain"按鈕是灰色的,不可點擊,此時可以如圖所示
?選擇:
Optional.of("hello,world").map(e->e+"hi").map(e->e+"debug").map(e->e+"test")
?點擊右鍵,選擇Evaluate Expression
?在接下來的彈窗點擊Evaluate,即可得到計算的結果
?這個Evaluate Expression可以在調試過程中,選擇任意需要調試的代碼,執行得到結果