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

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)

分享創造快樂