通過IntelliJ IDEA 2016.3 來更好使用Java 8的Stream API


title: 通過IntelliJ IDEA 2016.3 來更好使用Java 8的Stream API
categories: 基礎(chǔ)
tags: Java 8
keywords: Java 8 Streams IDEA


本文展示了IntelliJ IDEA如何幫助編寫正確的和培養(yǎng)使用Java 8的習(xí)慣,版本使用IntelliJ IDEA 2016.3, 通過擴(kuò)展了IDEA現(xiàn)有的檢查以支持這些的案例。

現(xiàn)在,如果在上面定義的局部變量的循環(huán)遞增中單擊Alt + Enter,IDE將提示您使用以count()結(jié)尾的一系列steam的鏈?zhǔn)?API調(diào)用來替換它。 注意,如果循環(huán)是嵌套的,IDE將使用flatMap():

如果變量從另一個(gè)方法返回的數(shù)字增加,IDE將使用mapToInt()/ mapToLong()/ mapToDouble():

如果循環(huán)將非原始對象添加到集合中,而不是遞增變量,IDE將用以collect()結(jié)尾的調(diào)用鏈替換它:

如果要添加到集合的對象是另一種方法的結(jié)果,IDE將使用map()以慣用的方式處理它:

這些檢查所支持的代碼細(xì)節(jié)多么? 相當(dāng)多。 考慮一個(gè)大量使用continue語句的循環(huán):

與continue類似,IDE也將使用anyMatch()正確處理返回語句:

如果您決定使用這些檢查,請務(wù)必調(diào)整默認(rèn)代碼樣式設(shè)置,以避免超過長方法鏈的右邊距。 在此,你有一個(gè)選擇,根據(jù)你的喜好來設(shè)置。

  • 下拉鏈(Chop down chain)方法調(diào)用如果它們很長(最適合Java 8)
  • 包裝方法( Wrap method )參數(shù)調(diào)用

目前我們正在考慮更改這些默認(rèn)值。

默認(rèn)情況下啟用檢查,但其檢查級別設(shè)置為最小 - 這意味著沒有警告。 這是IntelliJ IDEA 2016的另一個(gè)新功能。

您可以在“設(shè)置”中更改任何檢查的級別:

如果需要,您可以在你選擇的范圍上以批處理模式來應(yīng)用這些檢查:

我們希望新的檢查將幫助并使你的Java 8代碼寫更加得心應(yīng)手,并充分利用stream API。 那些不熟悉stream API的人,請務(wù)必閱讀Oracle的教程:第1部分和第2部分。

最后但并非最不重要的,IDEA還在努力改進(jìn)VCS Log的布局:

  • 提交詳細(xì)信息已移至右側(cè),為日志本身提供了更多空間。
  • 表中的提交消息現(xiàn)在對齊,因此更易讀。

關(guān)于Java 8 Stream API 的使用,請參考本人的博文:


更多干貨內(nèi)容請關(guān)注:極樂科技

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,678評論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,283評論 6 342
  • 本文采用實(shí)例驅(qū)動(dòng)的方式,對JAVA8的stream API進(jìn)行一個(gè)深入的介紹。雖然JAVA8中的stream AP...
    浮梁翁閱讀 26,158評論 3 50
  • 滿地桃花搖春鳳 春光明媚,草木吐綠,正是桃花盛開時(shí),我背上照相機(jī)踏上了“春游”“賞花”之路。 來到故鄉(xiāng)小張塢村外,...
    夢與七鹿閱讀 377評論 0 0
  • 沉默了 回首之后 外面的雨 畫上一筆寫意的美好 我不知道什么時(shí)候已經(jīng)入春 但此刻 但愿已經(jīng)蘇醒 但愿世界開啟心窗 ...
    亦之游閱讀 166評論 0 2

友情鏈接更多精彩內(nèi)容