1. 程式人生 > >肝了兩天IntelliJ IDEA 2020,解鎖11種新姿勢, 真香!!!

肝了兩天IntelliJ IDEA 2020,解鎖11種新姿勢, 真香!!!

> IDEA2020版本正式釋出已經有3個月了,當時由於各方面原因(太懶)也沒有去嘗試新功能。於是這個週末特意去在另一個電腦上下載了最新版的IDEA,並嘗試了一下。總的來說呢,體驗上明顯的提升。 作為一個大版本的升級,自然也增加了許多新功能。個人體驗了兩天, - 支援Java14,並且可以直接通過IDE去直接下載JDK完成安裝配置 - 釋出官方版漢化外掛 - 導航欄優化可直接跳轉至方法或物件所在位置 - 新增Mono字型(人稱最適合程式設計師的字型) - LightEdit模式 - 終端的視窗拆分(水平/垂直拆分) - Zon(禪)模式 - javadoc文件的渲染a - 新增新的主題 - 更加智慧的錯誤檢測 - Debug增強預處理 **啟用方法:https://shimo.im/docs/XXGr3gWJJ8kQjjPx** ## 支援Java14 ### 支援Records 用於獲取宣告資料類的方法,只通過一行程式碼就可以獲取到資料。 ```java public class Range { private final int min; private final int max; public Range(int min, int max) { this.min = min; this.max = max; } public int getMin() { return min; } public int getMax() { return max; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Range range = (Range) o; return min == range.min && max == range.max; } @Override public int hashCode() { return Objects.hash(min, max); } @Override public String toString() { return "Range{" + "min=" + min + ", max=" + max + '}'; } } ``` 如上資料類,無參構造方法;初始化時對成員變數賦值;成員變數只有getter方法;覆寫了 超類 Object 的 equals 、hashCode、toString 方法。 使用Records只需要一樣程式碼即可以實現上述功能 ```java public record Range(int min, int max) {} ``` 如果你的IDEA沒有配置JDK,可以直接在IDEA內部進行JDK下載安裝配置。 ![](https://user-gold-cdn.xitu.io/2020/7/17/173586b4a50a9dc0?w=806&h=368&f=png&s=157830) ### instanceof模式簡化 我們經常會使用instanceof運算子將引用變數與型別進行比較的程式碼。如果結果為true ,那麼就可以將其顯式轉換為與之比較的型別。 ```java if (obj instanceof String) { String s = (String) obj; System.out.println(s); } ``` Java 14中的instanceof模式匹配引入了instanceof運算子的模式變數。如果instanceof條件為true,則模式變數將繫結到要比較的變數,從而避免了顯式強制轉換以使用其成員的需要。 於是我們可以改成這種寫法 ```java if (obj instanceof String s) { System.out.println(s); } ``` ## 官方版漢化外掛 官方這次更新之後支援了漢化版,漢化需要藉助JetBrains官方提供的Chinese (Simplified) Language Pack EAP外掛。可通過安裝外掛進行漢化 安裝方法: 在Plugins 搜尋“Chinese”第一個就是我們漢化時需要安裝的外掛。 ![](https://user-gold-cdn.xitu.io/2020/7/17/173586c1f716a24a?w=979&h=720&f=png&s=284257) 我在另外一臺電腦試著安裝時,發現搜尋不到這個外掛。如果有同學遇到同樣的問題,可以去IDEA外掛中心進行搜尋安裝 地址:https://plugins.jetbrains.com/idea ![](https://user-gold-cdn.xitu.io/2020/7/17/173586c4159ad5e3?w=1080&h=597&f=png&s=175310) 按照提示操作,下載相應的版本,然後進行安裝即可,安裝方式有兩種 - 直接將外掛拖入至IDEA介面即可 - 在plugins介面通過匯入本地檔案進行安裝 ![](https://user-gold-cdn.xitu.io/2020/7/17/173586c84652f112?w=982&h=341&f=png&s=94080) 漢化之後的介面如下圖所示,目前來看大部分內容已經漢化,還剩一點點選單內容沒有完成漢化。使用漢化之後突然竟然感覺不太會用了,我個人不建議使用漢化的。 ![](https://user-gold-cdn.xitu.io/2020/7/17/173586ca7e8d9652?w=982&h=341&f=png&s=94080) ![](https://user-gold-cdn.xitu.io/2020/7/17/173586cb719e10ba?w=980&h=685&f=png&s=185968) ## 導航欄優化 在IDEA2020之後的版本可以通過點選.java檔案導航到具體的方法或者物件所在的位置。再此之前的版本可以通過Structure介面進行位置跳轉 ![](https://user-gold-cdn.xitu.io/2020/7/17/173586ce061a2acd?w=767&h=452&f=png&s=232840) ## 新增Mono字型 一款被稱為目前最適合程式設計師的字型,新的版本下載之後自帶了Mono字型。 長時間使用程式碼期間減輕眼睛疲勞的問題。同時考慮了字母的大小和形狀等問題;它們之間的空間量,自然以等寬字型設計的平衡;一些看起來不必要的細節和符號之間不清楚的區別,例如I和l。 對於舊版本IDEA,如果想自行安裝Mono字型,可以通過官網自行下載安裝 地址:https://www.jetbrains.com/lp/mono/ ![](https://user-gold-cdn.xitu.io/2020/7/17/173586d19809902d?w=693&h=468&f=png&s=75521) ## LightEdit模式 可以理解為是一個輕量級的編輯器,可以在不載入專案的情況下,開啟某個檔案。 ![](https://user-gold-cdn.xitu.io/2020/7/17/173586d3ce3869a7?w=556&h=257&f=png&s=97163) 這樣我們就可以用IDEA以編輯器的形式去開啟Java檔案, ![](https://user-gold-cdn.xitu.io/2020/7/17/173586d6a59aa8c8?w=1080&h=602&f=png&s=135319) **如果需要開啟並載入檔案所在專案,只需要alt+enter之後選擇Open file in project 即可。** ## 終端的視窗拆分 這個更新,感覺真的提升了不少效率,多個終端在同一介面節省了來回切換的麻煩。 ![](https://user-gold-cdn.xitu.io/2020/7/17/173586dca30a5beb?w=1012&h=405&f=png&s=153137) 使用時是這樣的,有沒有感覺效率提升了不少呢? ![](https://user-gold-cdn.xitu.io/2020/7/17/173586de049773df?w=1080&h=338&f=png&s=166402) ## Zon(禪)模式 一個可以讓程式設計師全身心投入到寫程式碼,不受外界干擾的一種模式。 啟用方式如下圖所示: ![](https://user-gold-cdn.xitu.io/2020/7/17/173586e12c74f118?w=592&h=132&f=png&s=61388) - Enter/Exit Presentation Mode:進入/退出 展示模式 - Enter/Exit Distraction Free Mode:進入/退出 免打擾模式 - Enter/Exit Full Screen:進入/退出 全屏模式 - Enter/Exit Zen Mode:進入/退出 禪模式(一個終極模式,包含以上3種模式) 下圖為禪模式,整個螢幕就是你的編輯頁面,帶上耳機開啟禪模式,真的會有一種瞬間全世界都清淨的感覺! ![](https://user-gold-cdn.xitu.io/2020/7/17/173586e6977687e9?w=1080&h=674&f=png&s=211567) ## javadoc文件的渲染 當我們去閱讀原始碼的註釋或者一些幫助文件API,可能含有各種標記,影響閱讀,而通過javadoc渲染功能之後,會自動祛除一些不必要的標題。並且可以修改字型的大小,方便閱讀! 如下是SimpleDateFormat中javadoc的一部分,是不是給人一種無法讀下去的感受。 ![](https://user-gold-cdn.xitu.io/2020/7/17/173586e946c479bb?w=1080&h=607&f=png&s=384225) 用了JavaDoc之後呢,它就是這樣的了 ![](https://user-gold-cdn.xitu.io/2020/7/17/173586eaeba84d74?w=687&h=667&f=png&s=411473) ## 新增新的主題 在view中點選Quick Switch Scheme,然後在彈出的對話方塊中點選Themes,可以更換IDEA的主題。 ![](https://user-gold-cdn.xitu.io/2020/7/17/173586ed56dfcd55?w=504&h=400&f=png&s=174615) ![](https://user-gold-cdn.xitu.io/2020/7/17/173586ee25de1aa1?w=117&h=107&f=png&s=14113) 新增了統一的IntelliJ Light主題,這個主題已經在不同的作業系統中完全統一了。不過就我個人而言,還是更新換用Darcula黑灰色主題風格。 ## 錯誤檢測 比如我們在寫日期轉化的時候不小心寫錯了,如下: ```java public static void main(String[] args){ SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd"); System.out.println("this is a boy"); } ``` 這裡呢,IDEA就會在YYYY字元上進行高亮顯示,滑鼠放上去就會提示我們,點選下方的Replace ‘YYYY’ with ‘yyyy’ 會自動幫我們進行替換。 ![](https://user-gold-cdn.xitu.io/2020/7/17/173586f479614e03?w=903&h=163&f=png&s=97460) ## Debug增強預處理 如下程式碼 ```java public static void main(String[] args) { int a = 0; while (a < 100) { if (a == 3) { System.out.println("+++++"); } a++; } } ``` 在第5行加了斷點,當我們debug啟動時,第6行就會進行與判斷False。 ![](https://user-gold-cdn.xitu.io/2020/7/17/173586f9d6ce4102?w=746&h=266&f=png&s=92894) 執行到a = 3時,會與判斷為True。 ![](https://user-gold-cdn.xitu.io/2020/7/17/173586fb81a78e25?w=756&h=249&f=png&s=87073) ## 總結 以上就是我這兩天體驗了一下IDEA2020版本之後的測評清單,還有很多功能需要在平時的使用中進行挖掘。如果大家有什麼新功能要分享歡迎留言區進行留言。最後呢,建議大家最好不要使用公司的電腦進行升級,以免引起不必要的麻煩耽誤了正常工作。 最後呢,我錄製了一個視訊上傳至B站了,大家可以去看一下。順便記得點贊哦 https://www.bilibili.com/video/BV1ua4y1a7d7/ ### 文末福利 [肝了全網,43份Java思維導圖,需要自取!!!](https://mp.weixin.qq.com/s?__biz=MzU1ODMxODE3OQ==&mid=2247483684&idx=1&sn=18d1c3a814f8d2335d6aa3f4d5ffa647&chksm=fc291628cb5e9f3e496611859f2a1df301688f45d981f72ffa295631609f7536f17452e68828&scene=21#wechat_redirect) [《Java面試手冊》V1.0版本,高清PDF免費獲取](https://mp.weixin.qq.com/s?__biz=MzU5NTgzMDYyMA==&mid=2247487331&idx=1&sn=0d669d0cf50eedb6a7ee99317745fd9d&chksm=fe6abd50c91d3446b17269916c5d2c166144ec2d7872bd55f4f19749f147321336e36f95ec21&token=1534293042&lang=zh_CN&scene=21#wechat_r