<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 小技巧: Stream Trace 功能!

          共 2292字,需瀏覽 5分鐘

           ·

          2021-06-12 11:29


          粉絲福利:小編會從今天留言的小伙伴中隨機抽贈送8.88元現(xiàn)金紅包。

          娛樂抽獎,大家隨緣積極參與啦,給生活一點小幸運~感謝大家的支持

          前言

          自從 Java 8 開始,作為程序員的我們都離不開 Stream 相關功能的使用,書寫起來那叫一個流暢(這個 feel~~)。但總是有一些時候,我們對 stream 的操作所要的結果和預期不符,這就需要我們逐步調試,定位問題

          常規(guī)調試

          先來看下面這段代碼:

          public static void main(String[] args) {
            Object[] res = Stream.of(1,2,3,4,5,6,7,8).filter( i -> i%2 == 0).filter( i -> i>3).toArray();
            System.out.println(Arrays.toString(res));
          }

          我們可以在 Stream 操作處打上斷點,逐步查看結果,就像這樣:

          用好 Spring AOP,天降大鍋從容應對!

          我們需要各種單步調試,不是很直觀,我們迫切的需要個一覽視圖,讓我們快速查看我們的 Stream 結果

          可視化調試

          同樣先選擇行斷點,以 Debug 模式進入程序:

          Spring MVC用ResponseEntity返回可實現(xiàn)更強大的功能

          接下來會彈出 Stream Trace,整個 Stream 操作盡顯眼前

          SpringBoot 部署 Jar 文件,瘦身優(yōu)化指南 !

          同樣可以點擊左下角的 Flat Mode 按鈕,將整個視圖扁平化

          一條 update 語句引起的事故,這回讓開發(fā)長長記性!!

          在實際業(yè)務中,我們通常對集合進行各種 Stream 操作,我們再來個復雜一些的例子:

            List<Optional<Customer>> customers = Arrays.asList(
              Optional.of(new Customer("日拱一兵"18)),
              Optional.of(new Customer("卑微的小開發(fā)"22)),
              Optional.empty(),
              Optional.of(new Customer("OOT"21)),
              Optional.empty(),
              Optional.of(new Customer("溫柔一刀"23)),
              Optional.empty()
            );

            long numberOf65PlusCustomers = customers
              .stream()
              .flatMap(c -> c
                .map(Stream::of)
                .orElseGet(Stream::empty))
              .filter(c -> c.getAge() > 18)
              .count();

            System.out.println(numberOf65PlusCustomers);

          同樣按照上面的操作得到可視化 Stream Trace 視圖,直觀了解整個 Stream 流程,查看對象屬性等

          知乎高贊:那些學計算機的女生后來都怎么樣了?

          總結

          這個簡單的功能,看一遍就會,相信可以在日常的調試中對你有很大幫助,接下來會介紹更多的你不曾留意又很高級調試技巧。

          你用過這個功能嗎?你還知道哪些高級技巧?


          1、Intellij IDEA這樣 配置注釋模板,讓你瞬間高出一個逼格!
          2、基于SpringBoot的迷你商城系統(tǒng),附源碼!
          3、最牛逼的 Java 日志框架,性能無敵,橫掃所有對手!
          4、把Redis當作隊列來用,真的合適嗎?
          5、驚呆了,Spring Boot居然這么耗內存!你知道嗎?
          6、全網(wǎng)最全 Java 日志框架適配方案!還有誰不會?
          7、Spring中毒太深,離開Spring我居然連最基本的接口都不會寫了

          點分享

          點收藏

          點點贊

          點在看

          瀏覽 42
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  萝莉白虎一线天 | 操逼豆花视频 | 蜜臀av在线 | 国产福利激情视频 | 人人操永久网 |