<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          IntelliJ IDEA 調(diào)試 Java 8 Stream,實(shí)在太香了!

          共 1614字,需瀏覽 4分鐘

           ·

          2020-10-11 14:31

          Java技術(shù)棧

          www.javastack.cn

          關(guān)注閱讀更多優(yōu)質(zhì)文章


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

          留言區(qū)也有人說 IntelliJ IDEA 早已支持 Java 8 Stream 調(diào)試,因?yàn)槲移綍r(shí)也很少調(diào)試,那么我就以 IntelliJ IDEA 來演示下如何調(diào)試 Java 8 中的 Stream 鏈?zhǔn)秸{(diào)用吧。

          先寫一段 Java 8 Stream 示例:

          /*
          *?來源公眾號(hào):Java技術(shù)棧?
          */
          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 種方式請(qǐng)點(diǎn)擊這里進(jìn)行閱讀。

          這個(gè)程序是先構(gòu)建一個(gè) 5 個(gè)數(shù)字的 Stream, 然后再對(duì)每個(gè)數(shù)字 * 10,再篩選出大于 2000 的數(shù)字進(jìn)行打印。

          如何調(diào)試每個(gè)鏈?zhǔn)秸{(diào)用的過程呢?

          先在第一行打個(gè)斷點(diǎn),然后進(jìn)入調(diào)試模式運(yùn)行,當(dāng)斷點(diǎn)進(jìn)入時(shí),點(diǎn)擊調(diào)試窗口的 Trace Current Stream Chain 按鈕:

          然后自動(dòng)進(jìn)入當(dāng)前 Stream 跟蹤調(diào)試窗口,上面會(huì)展示每個(gè)鏈?zhǔn)秸{(diào)用的選項(xiàng)卡,點(diǎn)擊各個(gè)選項(xiàng)卡可以看對(duì)應(yīng)每步的跟蹤結(jié)果。

          如下面所示:

          也可以點(diǎn)擊左下角的 Flat Mode 進(jìn)入扁平模式,一次性展示所有跟蹤結(jié)果:

          OK,Java 8 Stream 的調(diào)試不是問題了, 但我并沒有找到像 Optional 鏈?zhǔn)秸{(diào)用的調(diào)試方式。

          比如下面一段 Optional 示例:

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

          調(diào)試如圖所示:

          可惜,Trace Current Stream Chain 按鈕是灰色狀態(tài),不能進(jìn)入,因?yàn)槟莻€(gè)按鈕只能被 Stream 調(diào)試所用。

          那像這種非 Stream 鏈?zhǔn)秸{(diào)用怎么調(diào)試呢?

          斷點(diǎn)進(jìn)入后,可以選中需要調(diào)試的部分鏈?zhǔn)酱a片斷,然后右鍵選中 Evaluate Expression 菜單(ALT + F8)進(jìn)入表達(dá)式計(jì)算窗口:

          點(diǎn)擊 Evaluate 按鈕開始計(jì)算:

          計(jì)算無誤,該表達(dá)式還可以自由編輯,非常強(qiáng)大。

          雖然沒有像 Stream 這樣專屬的調(diào)試面板,使用 Evaluate Expression 也能達(dá)到調(diào)試鏈?zhǔn)秸{(diào)用的目的吧。關(guān)于這個(gè),你還有其他調(diào)試方案么?歡迎留言分享!

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

          關(guān)注Java技術(shù)棧微信公眾號(hào),棧長(zhǎng)將繼續(xù)分享好玩的 Java 技術(shù),公眾號(hào)第一時(shí)間推送,在公眾號(hào)后臺(tái)回復(fù):IDEA,可以獲取歷史 IDEA 教程,都是干貨。





          關(guān)注Java技術(shù)棧看更多干貨



          戳原文,獲取精選面試題!
          瀏覽 57
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产极品艳情生活视频在线观看免费 | 青青艹,天天射 | 自拍成人在线观看 | 曰韩黄色毛片免费在线观看 | 黄片免费入口 |