船新 IDEA 2020.1真香體驗!Java開發首席生產力擔當

就在前幾天,Java軟件開發神器 IDEA 2020.1 新版發佈了:java

image

我第一時間在機子上更新並體驗了幾天,感受仍是有點香的!怎麼碩呢,體驗完新特性以後,不禁的感嘆一句:IDEA如今真的是愈來愈智能,愈來愈懂開發者了。數據庫


UI/界面升級

一、界面支持中文了編程

漢化後的效果就是這個憨樣子:框架

image

各花入各眼,好壞就不作評判了,能夠根據本身的喜愛來調節。編輯器

必需要說的是,這個中文漢化不是軟件原生支持,而是須要下載安裝一個名爲Chinese (Simplified) Language Pack的插件,好在這個插件就是JetBrains官方提供的ide

image

二、導航欄進化函數

如今代碼層級導航欄這裏,能夠直接定位到文件中的某個具體方法或者字段了,這個的確很高效工具

image

三、支持編輯器內的Javadocs渲染字體

之前在IDEA中閱讀Javadoc很是不方便,由於處於原始狀態的Javadoc中含有各類標記,很差讀。此次新版的IDEA 2020新增了Javadocs的渲染功能,點擊左邊的小按鈕就能夠啓用this

image

渲染後的Javadoc就很是直觀易讀了,並且還能夠調整字號

image

四、新增主題和字體

首先默認支持了JetBrains自家的新JetBrains Mono字體,這沒啥可說的,以前就體驗過了,詳細可參考前文《試水JetBrains官方新編程字體,真香!》

image

而後則是採用了統一的IntelliJ Light主題,並且該主題已經在不一樣的操做系統中徹底統一了

image

image

喜不喜歡看你們我的習慣了。

五、船新的LightEdit模式

LightEdit,顧名思義,輕量級的代碼編輯。

是的,此次更新的IDEA支持打開單個代碼文件進行編輯,而無需打開整個項目。文件能夠在單獨的編輯窗口打開,並且該窗口能夠和其餘(項目)窗口共存。就像這樣:

image

更強大的是,直接支持快捷打開這個單文件所在的完整項目:

image

甚至還能夠經過命令行來打開單文件,這至關能夠了:

image

六、支持「禪」模式

如今的這個代碼展現模式有夠豐富了,支持四種了:

image

固然,禪模式是最完全的,一開這個模式,整個世界都清淨了...

image

七、終端支持分欄了

如今能夠隨意地將IDEA自帶的終端進行橫豎分欄,很是方便

image


支持直接IDEA裏安裝JDK和Git

不少小夥伴交流說本身JDK環境好像裝的有問題,實驗各類出問題。爲了這個事,強迫症都快犯了,很煩。

從IntelliJ IDEA 2020.1開始,咱們能夠直接在建立項目時,直接從IDEA上下載並設置JDK環境,很方便了。

我特意實驗了一下,在IDEA裏面下載安裝了個Open JDK 14,沒毛病,好用,切換也很方便。

image

image

除此以外,IDEA還直接支持Git的安裝,i了i了

image


支持Java 14新特性

前段時間Java 14發佈,加入了一些新特性,此次IDEA 2020.1迅速跟進,支持了Java 14的一些新特性,舉兩個典型的例子。

一、instanceof用法加強

老的Java版本中,對於instanceof語法,咱們通常都是這樣用的:

private void test( Object obj ) {
    if( obj instanceof String  ) {
        String str = (String) obj;  // 需手動強制轉換!
        System.out.println( str.isEmpty() );
    }
}

而Java 14對instanceof用法作了加強,咱們藉助全新的IDEA 2020,能夠快捷的將上面的代碼自動重構成以下所示:

image

因此最終變成了這個亞子:

private void test( Object obj ) {
    if( obj instanceof String str ) { // 校驗經過,直接後面定義變量,無需強轉!
        System.out.println( str.isEmpty() );
    }
}

二、record新語法支持

Java 14新增了record新語法,record的詞面意思就是 「記錄」,主要用於形式化的固定記錄,這在之前主要就是經過 不可變類來實現的,舉個例子吧。

好比咱們定義一個不可變的日誌記錄類LogRecord,裏面包含日誌ID(id),日誌時間(date),日誌詳情(detail),按照老的作法,只能使用class進行定義:

public final class LogRecord { // 不可變類

    private final int id;
    private final LocalDate date;
    private final String detail;

    public LogRecord(int id, LocalDate date, String detail) {
        this.id = id;
        this.date = date;
        this.detail = detail;
    }


    public int getId() {
        return id;
    }

    public LocalDate getDate() {
        return date;
    }

    public String getDetail() {
        return detail;
    }

    @Override
    public String toString() {
        return "LogRecord{" +
                "id=" + id +
                ", date=" + date +
                ", detail='" + detail + '\'' +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        LogRecord logRecord = (LogRecord) o;
        return id == logRecord.id &&
                Objects.equals(date, logRecord.date) &&
                Objects.equals(detail, logRecord.detail);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, date, detail);
    }
    
}

Java 14認爲上面這種final類型class的定義的套路是徹底固定的,寫了不少固定套路的代碼,包括:構造函數、Getter方法、toString()方法、hashCode()equals()方法等等,十分無聊。

爲此Java 14推出了全新的record語法,只需一行代碼便可搞定,十分方便:

record LogRecord( int id, LocalDate date, String detail ) {
    
}

此次IDEA 2020中就已經徹底支持recod語法了,而且還能夠自動顯式地爲record生成各類方法:

image


支持更加智能的檢查和重構

一、支持就地更改方法簽名

什麼意思呢?舉個例子。

當你想直接修改某個已有方法的參數時,無論三七二十一,上來能夠直接修改方法簽名,而後點擊更新,接下來的全部步驟IDEA能夠幫你完成。

image

image

image

image

二、智能分析日期字符串格式

好比這個例子中,我格式化一個日期時,無心將年月日yyyy/MM/dd字符串寫成了yyyy/mm/dd,中間的MM大小寫忘了,IDEA自動給咱們分析出來了:

image

三、智能語法和拼寫檢查器

這個功能得配合Grazie這個插件一塊兒使用,該插件是一個全面的語法、拼寫、以及樣式檢查工具。

好比,這地方我小手一抖,寫錯了英語語法,它立馬幫咱們提示出來了

image


加強調試功能

一、數據流分析輔助,能夠直接預測下面的運行結果

IDEA 2020.1直接將數據流分析添加到JVM調試器。當程序在斷點處中止時,IDEA能夠根據程序的當前狀態運行數據流分析,來預測下一步將要發生什麼。

image

二、調試時,支持固定對象字段

當一個對象字段過多,以至於調試時很難找到須要的字段時,咱們能夠直接將其置頂,便於查看。

image

三、以文件形式存儲運行配置

新版IDEA支持直接將當前的調試/運行的配置存檔,並在之後選擇從新加載

image


更加先進的版本控制

第一個大的改進就是從新設計了代碼提交的窗口,而再也不是之前老的那種模態化彈窗式窗口了。這樣一來,提交代碼時的代碼比對,編輯會更加溫馨。

image

第二個改進就是支持搜索刷新本地以及遠端的代碼分支:

image

另外,這個歷史日誌留痕也是蠻好看的:

image


Maven和Gradle導入更新

此處就以Maven工具爲例,編輯器右上角出現的是一個浮動通知。修改構建文件後,可使用這個迷你的通知圖標來加載更改。

image


數據庫處理加強

新版IDEA內置的數據庫管理,如今能夠支持將數據導出到Excel(.xlsx)文件,而且直接在編輯器中以文本形式查看

image


加強的HTTP Client

升級以後的HTTP Client更加智能,典型的好比:支持自動匹配和補全

image

並且還能夠在Contoller代碼的左側,經過快捷的方式來自動生成HTTP請求文件

image

並且對於Spring項目,還能夠在底部的Endpoints窗口裏來快捷生成HTTP請求文件。

image


其餘改進

一、對各類框架的支持改進,好比:Spring WebFlux/Selenium/JMS/Micronaut/RxJava等等

二、對Docker/Kubernetes的支持改進

三、對Scala 3的支持

四、對Android Volley的支持

五、對JavaScript的改進和支持


小結

體驗一番以後發現,新版的IDEA 2020.1肉眼可見的改進仍是很是多的,挺香。

不過還有一個實際的問題就是:我一升級以後發現一大票的插件都不能用了,因此周邊支持的兼容性還得再等等。

相關文章
相關標籤/搜索