前段時間,棧長髮布了一篇關於 Java 8 Optional.map 的實用文章,留言區就有的人說 Java 8 的語法糖不方便調試,還要視狀況使用。java
留言區也有人說 IntelliJ IDEA 早已支持 Java 8 Stream
調試,由於我平時也不多調試,那麼我就以 IntelliJ IDEA 來演示下如何調試 Java 8 中的 Stream
鏈式調用吧。spring
先寫一段 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
建立方式,Java 8 建立 Stream
的 10 種方式請點擊這裏進行閱讀。intellij-idea
這個程序是先構建一個 5 個數字的 Stream, 而後再對每一個數字 * 10,再篩選出大於 2000 的數字進行打印。
如何調試每一個鏈式調用的過程呢?ide
先在第一行打個斷點,而後進入調試模式運行,當斷點進入時,點擊調試窗口的 Trace Current Stream Chain
按鈕:spring-boot
而後自動進入當前 Stream
跟蹤調試窗口,上面會展現每一個鏈式調用的選項卡,點擊各個選項卡能夠看對應每步的跟蹤結果。性能
以下面所示:lua
也能夠點擊左下角的 Flat Mode
進入扁平模式,一次性展現全部跟蹤結果:idea
OK,Java 8 Stream
的調試不是問題了, 但我並無找到像 Optional
鏈式調用的調試方式。spa
好比下面一段 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
按鈕是灰色狀態,不能進入,由於那個按鈕只能被 Stream
調試所用。
那像這種非 Stream 鏈式調用怎麼調試呢?
斷點進入後,能夠選中須要調試的部分鏈式代碼片段,而後右鍵選中 Evaluate Expression
菜單(ALT + F8)進入表達式計算窗口:
點擊 Evaluate
按鈕開始計算:
計算無誤,該表達式還能夠自由編輯,很是強大。
雖然沒有像 Stream
這樣專屬的調試面板,使用 Evaluate Expression
也能達到調試鏈式調用的目的吧。關於這個,你還有其餘調試方案麼?歡迎留言分享!
好了,本次的分享就到這裏了,但願對你們有用。以爲不錯,在看、轉發分享一下哦~
關注Java技術棧微信公衆號,棧長將繼續分享好玩的 Java 技術,公衆號第一時間推送,在公衆號後臺回覆:IDEA,能夠獲取歷史 IDEA 教程,都是乾貨。
近期熱文推薦:
1.Java 15 正式發佈, 14 個新特性,刷新你的認知!!
2.終於靠開源項目弄到 IntelliJ IDEA 激活碼了,真香!
3.我用 Java 8 寫了一段邏輯,同事直呼看不懂,你試試看。。
以爲不錯,別忘了隨手點贊+轉發哦!