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

image-20200327164643771
如上圖所示,可以看到每一步操作的元素個(gè)數(shù)、操作的結(jié)果、元素轉(zhuǎn)換前后的對(duì)應(yīng)關(guān),非常清晰明了;還可以查看具體的對(duì)象內(nèi)容。
使用StreamTrace
StreamTrace只有在debug模式下才能使用,當(dāng)在Stream代碼上設(shè)置斷點(diǎn)后,啟動(dòng)debug,點(diǎn)擊流按鈕,如圖所示。

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

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

image
實(shí)戰(zhàn)演示
這里演示一段字符轉(zhuǎn)長(zhǎng)度并過(guò)濾長(zhǎng)度小于5的stream操作
@Test
public void TestTrace() {
Stream.of("beijing","tianjin","shanghai","wuhan")
.map(String::length)
.filter(e->e>5)
.collect(Collectors.toList());
}

image