日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

vs调试按钮为灰色的_IntelliJ IDEA 调试 Java 8,实在太香了

發(fā)布時間:2025/4/5 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vs调试按钮为灰色的_IntelliJ IDEA 调试 Java 8,实在太香了 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前段時間,棧長發(fā)布了一篇關于 Java 8 Optional.map 的實用文章,留言區(qū)就有的人說 Java 8 的語法糖不方便調試,還要視情況使用。

留言區(qū)也有人說 IntelliJ IDEA 早已支持 Java 8 Stream 調試,因為我平時也很少調試,那么我就以 IntelliJ IDEA 來演示下如何調試 Java 8 中的 Stream 鏈式調用吧。

先寫一段 Java 8 Stream 示例:

/** 來源:Java技術棧 */public static void main(String[] args) { Stream.of(100, 200, 300, 400, 500) .mapToLong(e -> e * 10) .filter(e -> e > 2000) .forEach(System.out::println);}

這里只演示了一種 Stream 創(chuàng)建方式,Java 8 創(chuàng)建 Stream 的 10 種方式請點擊這里進行閱讀。

這個程序是先構建一個 5 個數字的 Stream, 然后再對每個數字 * 10,再篩選出大于 2000 的數字進行打印。

如何調試每個鏈式調用的過程呢?

先在第一行打個斷點,然后進入調試模式運行,當斷點進入時,點擊調試窗口的 Trace Current Stream Chain 按鈕:

然后自動進入當前 Stream 跟蹤調試窗口,上面會展示每個鏈式調用的選項卡,點擊各個選項卡可以看對應每步的跟蹤結果。

如下面所示:

也可以點擊左下角的 Flat Mode 進入扁平模式,一次性展示所有跟蹤結果:

OK,Java 8 Stream 的調試不是問題了, 但我并沒有找到像 Optional 鏈式調用的調試方式。

比如下面一段 Optional 示例:

/** 來源:Java技術棧 */public static void main(String[] args) { String string = Optional.of("hi,") .map(e -> e + "Java") .map(e -> e + "技術") .map(e -> e + "棧").get(); System.out.println(string);}

調試如圖所示:

可惜,Trace Current Stream Chain 按鈕是灰色狀態(tài),不能進入,因為那個按鈕只能被 Stream 調試所用。

那像這種非 Stream 鏈式調用怎么調試呢?

斷點進入后,可以選中需要調試的部分鏈式代碼片斷,然后右鍵選中 Evaluate Expression 菜單(ALT + F8)進入表達式計算窗口:

點擊 Evaluate 按鈕開始計算:

計算無誤,該表達式還可以自由編輯,非常強大。

雖然沒有像 Stream 這樣專屬的調試面板,使用 Evaluate Expression 也能達到調試鏈式調用的目的吧。關于這個,你還有其他調試方案么?歡迎留言分享!

好了,本次的分享就到這里了,希望對大家有用。覺得不錯,在看、轉發(fā)分享一下哦~

關注Java技術棧,棧長將繼續(xù)分享好玩的 Java 技術,你也可以點擊下面的了解更多鏈接關注Java技術棧閱讀歷史 IDEA 教程,都是干貨。

《新程序員》:云原生和全面數字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的vs调试按钮为灰色的_IntelliJ IDEA 调试 Java 8,实在太香了的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。