0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

java的stream編程調(diào)試技巧

Android編程精選 ? 來源:Android編程精選 ? 作者:Android編程精選 ? 2022-10-11 11:06 ? 次閱讀

java的stream編程給調(diào)試帶來了極大的不便,idea 推出了streamtrace功能,可以詳細(xì)看到每一步操作的關(guān)系、結(jié)果,非常方便進(jìn)行調(diào)試。初遇StreamTrace這里簡單將字符串轉(zhuǎn)成它的字符數(shù),并設(shè)置斷點(diǎn)開啟debug模式。

39b9efde-3b37-11ed-9e49-dac502259ad0.png

如上圖所示,可以看到每一步操作的元素個數(shù)、操作的結(jié)果、元素轉(zhuǎn)換前后的對應(yīng)關(guān),非常清晰明了;還可以查看具體的對象內(nèi)容。

使用StreamTraceStreamTrace只有在debug模式下才能使用,當(dāng)在Stream代碼上設(shè)置斷點(diǎn)后,啟動debug,點(diǎn)擊流按鈕,如圖所示。

3a7794bc-3b37-11ed-9e49-dac502259ad0.png

點(diǎn)擊后,默認(rèn)Split 模式顯示。

3adff34a-3b37-11ed-9e49-dac502259ad0.png

可以點(diǎn)擊左下方按鈕切換到FlatMode模式,當(dāng)然也可以再切換回去。

3afb31be-3b37-11ed-9e49-dac502259ad0.png

實(shí)戰(zhàn)演示這里演示一段字符轉(zhuǎn)長度并過濾長度小于5的stream操作


@Test publicvoidTestTrace(){ Stream.of("beijing","tianjin","shanghai","wuhan") .map(String::length) .filter(e->e>5) .collect(Collectors.toList()); }
3b30ef34-3b37-11ed-9e49-dac502259ad0.png

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2952

    瀏覽量

    104479
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    575

    瀏覽量

    20468
  • Stream
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    7956
  • idea
    +關(guān)注

    關(guān)注

    1

    文章

    67

    瀏覽量

    4238

原文標(biāo)題:Java 8 的 Stream 不好調(diào)試?別逗了!IDEA 調(diào)試就能輕松搞定!!

文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Stream API原理介紹

    Stream API 是 Java 8 中最重要的新特性之一,它是處理集合和數(shù)組的一種新方式。它提供了一種簡單、靈活和可讀的方式來處理集合和數(shù)組中的元素,從而使代碼更加簡潔、高效和易于維護(hù)。 1.
    的頭像 發(fā)表于 09-30 15:31 ?663次閱讀

    java 網(wǎng)絡(luò)編程語言

    java 網(wǎng)絡(luò)編程語言
    發(fā)表于 12-09 15:41 ?0次下載

    Java并發(fā)編程實(shí)戰(zhàn)

    Java并發(fā)編程實(shí)戰(zhàn)
    發(fā)表于 03-19 11:24 ?7次下載

    JAVA優(yōu)化編程

    JAVA優(yōu)化編程
    發(fā)表于 03-19 11:24 ?1次下載

    Java編程指南

    Java編程指南
    發(fā)表于 03-19 11:26 ?3次下載

    Java編程100例

    Java詳細(xì)編程 100例
    發(fā)表于 05-24 11:20 ?23次下載

    JAVA并發(fā)編程實(shí)踐

    JAVA并發(fā)編程實(shí)踐資料免費(fèi)下載。
    發(fā)表于 06-01 15:31 ?15次下載

    Java并發(fā)編程的藝術(shù)

    Java并發(fā)編程的藝術(shù)說明。
    發(fā)表于 06-01 15:31 ?16次下載

    如何利用Stream API來優(yōu)化Java代碼

    使用Stream API優(yōu)化代碼 Java8的新特性主要是Lambda表達(dá)式和流,當(dāng)流和Lambda表達(dá)式結(jié)合起來一起使用時,因?yàn)榱魃昝魇教幚頂?shù)據(jù)集合的特點(diǎn),可以讓代碼變得簡潔易讀 放大招,流
    的頭像 發(fā)表于 07-26 14:30 ?1270次閱讀

    JDK8 Stream數(shù)據(jù)流效率分析

    StreamJava SE 8類庫中新增的關(guān)鍵抽象,它被定義于 java.util.stream (這個包里有若干流類型:Stream 代表對象引用流,此外還有一系列特化流,
    的頭像 發(fā)表于 08-17 10:53 ?1201次閱讀

    Java編程思想練習(xí)題源碼

    Java編程思想練習(xí)題源碼,配合《Java編程思想》進(jìn)行學(xué)習(xí)。
    發(fā)表于 09-26 14:24 ?0次下載

    Java 8 Stream之collect()的奇技淫巧

    本身我是一個比較偏向少使用Stream的人,因?yàn)?b class='flag-5'>調(diào)試比較不方便。但是, 不得不說,stream確實(shí)會給我們編碼帶來便捷。所以還是忍不住想分享一些奇技淫巧。
    的頭像 發(fā)表于 11-22 15:49 ?832次閱讀

    怎么使用Java8的Stream API比較兩個List的差異呢?

    可以使用Java8的Stream API來比較兩個List的差異,并取出不同的對象。
    的頭像 發(fā)表于 08-12 11:15 ?2141次閱讀

    Java8的Stream流 map() 方法

    8 之后,對集合可以進(jìn)行 Stream 操作,使上面的處理更簡潔。 概述 Stream 流式處理中有 map() 方法,先看下其定義,該方法在java.util.stream.Stream類中 可以看到
    的頭像 發(fā)表于 09-25 11:06 ?1732次閱讀
    <b class='flag-5'>Java</b>8的<b class='flag-5'>Stream</b>流 map() 方法

    JavaStream的常用知識

    ?我們都知道,傳統(tǒng)的處理中,每一步我們都需要通過循環(huán)控制,邏輯控制,解包,重新裝箱這些工作。 非生產(chǎn)線示意處理圖 這些步驟讓我們的程序的業(yè)務(wù)邏輯支離破碎,經(jīng)常處理數(shù)據(jù)類的小伙伴尤為痛苦。幸運(yùn)的是,Java8為我們引入了Stream,使用
    的頭像 發(fā)表于 10-11 15:45 ?427次閱讀
    <b class='flag-5'>Java</b>的<b class='flag-5'>Stream</b>的常用知識