歡迎光臨
每天分享高質量文章

IntelliJ IDEA 2018.2 釋出,支援 Java 11

點選上方“芋道原始碼”,選擇“置頂公眾號”

技術文章第一時間送達!

原始碼精品專欄

 

近期,JetBrains釋出了其旗艦產品IntelliJ IDEA的2018.2版本。新版本支援即將推出的Java 11、斷點意圖(Breakpoints Intentions)、MacBook的Touch Bar等特性,並改進了Spring Boot、Scala和Docker外掛。

Java

IntelliJ IDEA 2018.2支援Lambda引數使用的本地變數新語法(即JEP 323)。這是定於11月推出的Java 11中的一個新特性。該特性支援開發人員在Lambda運算式中使用var:

//Java 8,不支援var。 
BiConsumerString> consumer = (Processor x, String y) -> x.process(y);

//Java 11,支援var。
BiConsumerString> consumer = (var x, var y) -> x.process(y);

為配合Java 11對var的支援特性,在IDE中按住“Ctrl/⌘”鍵並將游標駐留於var上,將會顯示該變數的型別。

對於程式碼中冗長的方法鏈,IntelliJ IDEA將會給出型別提示(Type Hint)。面對具有泛型的長方法鏈時,開發人員可透過該功能檢視每個呼叫的型別提示。

img

2018.2為使用Extract Method(提煉方法)的重構新添了一個預覽面板。它有助於開發人員在確認更改前檢視重構的可能情況。

img

IntelliJ IDEA改進了對@org.jetbrains.annotations.Contract標註的支援。該標註支援開發人員為特定引數的傳遞指定一個響應方法,這將為空性(Nullability)分析以及其它一些程式碼檢查提供幫助。其約束新增的支援值包括:new,方法應該傳回一個非Null的新物件;this,方法應該傳回一個非Null的本身(this)指向;paramX,方法應該傳回第X個引數。

Stream API支援也做了改進。它將會顯示不必要的排序操作,以及錯誤使用了收集器(Collector)或集合(Colleciton)。此外,它還新增了對collect()(toSet())方法之前冗餘呼叫distinct()方法給出警告。

Java專案的除錯也做了大量的改進。如果開發人員組合使用Alt+Enter鍵及其他一些可用意圖(Intension),就可能會看到三種新的斷點意圖:在類中只停(stop only)、類中不停,以及在當前物件中只停。此外,除錯中還提供了一種新的Caller過濾器,支援開發人員從指定方法呼叫時在一個斷點處只停,或是從指定方法呼叫時跳過一個斷點。

使用者介面

新版本還交付了一系列使用者介面上的改進。現在IDEA直接支援MacBook的Touch Bar,併在Touch Bar介面的中間顯示TouchJ IDEA按鈕。這使得開發人員可以直接從Touch Bar執行、除錯、提交更改和更新專案。對於macOS上的IntelliJ主題,現在支援以更暗方式顯示標題欄,並添加了一些新的圖示。而Linux上的IntelliJ主題也做了一些更新。

img

Scala

IntelliJ IDEA對Scala外掛做了多項改進。它支援開發人員以行內提示的方式檢視隱式轉換和引數,併在一個提示工具(Tooltip)中瀏覽並擴充套件顯示資訊。現在,Scala外掛中添加了Scalafmt格式化工具。要配置Scala外掛,可依次點選選單項“Preferences/Settings”>“Editor”>“Code Style”>“Scala”。

型別標註的自動完成和樣式匹配功能也做了改進。如有可能,Scala外掛會對類和介面給出一組建議的型別樣式,參見下圖:

img

JavaScript/Typescript

2018.2還改進了對JavaScript和TypeScript的支援。開發人員可以使用新的提煉元件(Extract Component)重構特性新建一個React元件,使用新的Code Coverage特性發現並未在客戶端使用的JavaScript/TypeScript程式碼,並對程式碼做手工功能測試。為此,開發人員需要使用Code Coverage啟動一個JavaScript Debug配置,並與Chrome中的應用進行互動。配置完成後,IntelliJ IDEA會在Coverage工具視窗中給出一個程式碼改寫情況報告。

此外,開發人員可使用一系列JavaScript和TypeScript意圖,例如實現介面、建立派生類、實現介面或抽象類的成員、生成switch陳述句中的case,以及使用“for..of”實現迭代運算。

Spring

在2018.2中新添了一個Spring Integration Diagram。它使用XML或Java標註顯示了Spring應用的配置情況,包括gateway、channel和bridge等。

img

2018.2針對Spring Boot應用做了一些改進。新的Diagram Model支援開發人員對Spring Boot應用執行時Bean之間的依賴關係做視覺化。開發人員可以透過Run Dashboard管理HTTP請求對映。

img

Docker

IDEA的Docker外掛日漸成熟。新支援的特性包括使用新的Use Soft Warps操作支援Docker日誌換行(wrap word)。開發人員也可以從Compose節點和容器瀏覽對應的Compose和Docker檔案。此外,現在支援定義一個用於為Docker檔案執行docker build命令的根目錄。

更多資訊,以及完全的改進串列,提供於“新特性”頁面中。




如果你對 Dubbo 感興趣,歡迎加入我的知識星球一起交流。

知識星球

目前在知識星球(https://t.zsxq.com/2VbiaEu)更新瞭如下 Dubbo 原始碼解析如下:

01. 除錯環境搭建
02. 專案結構一覽
03. 配置 Configuration
04. 核心流程一覽

05. 拓展機制 SPI

06. 執行緒池

07. 服務暴露 Export

08. 服務取用 Refer

09. 註冊中心 Registry

10. 動態編譯 Compile

11. 動態代理 Proxy

12. 服務呼叫 Invoke

13. 呼叫特性 

14. 過濾器 Filter

15. NIO 伺服器

16. P2P 伺服器

17. HTTP 伺服器

18. 序列化 Serialization

19. 叢集容錯 Cluster

20. 優雅停機

21. 日誌適配

22. 狀態檢查

23. 監控中心 Monitor

24. 管理中心 Admin

25. 運維命令 QOS

26. 鏈路追蹤 Tracing


一共 60 篇++

原始碼不易↓↓↓

點贊支援老艿艿↓↓

贊(0)

分享創造快樂