<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          臥槽??!IntelliJ IDEA 居然偷偷改代碼。。

          共 1558字,需瀏覽 4分鐘

           ·

          2022-02-21 19:10

          點擊關注公眾號,Java干貨及時送達

          問題

          要瘋了,IDEA 居然自動修改代碼?

          明明我已經修改保存了,怎么測試都不行,后來我檢查一看,并通過復現,發(fā)現,代碼被 IDEA 自動改了。。

          如下面動圖所示:

          本來是 類.方法,我改成了 實例.方法 調用了

          原來,每次當我保存完之后,代碼又復原了,太詭異了。。

          這樣一來,那我的實例對象不是沒用到?又直接訪問類的靜態(tài)方法了。。

          定位

          看到上圖,棧長突然靈機一動,這讓我想起了之前分享過的《IntelliJ IDEA 2021.2 發(fā)布,這次要干掉 FindBugs 了!》這篇文章中的新功能:保存時動作,即可以在保存的時候執(zhí)行代碼優(yōu)化操作,不用去逐一檢查優(yōu)化了,保存時就能做到。

          更多 IDEA 教程,可以關注公眾號:Java技術棧,我分享了一大堆了,關注后在菜單中就可以閱讀。

          如下圖設置所示:

          我確實開啟了各項保存時動作,其中我就勾選了一個自動清理修復的選項。

          然后在 Inspections 菜單中:

          通過實例對象訪問靜態(tài)成員的警告也是打開的,意思就是不允許/不建議通過實例對象訪問靜態(tài)成員。

          所以,我猜測可能就是保存時的清理動作觸發(fā)了這條規(guī)則,然后就被自動優(yōu)化了。

          所以,我把它先取消勾選:

          然后再測試下:

          現在通過實例對象訪問靜態(tài)方法,再保存,實例對象不再被替換為類了,生效了,就是可以允許通過實例.靜態(tài)成員這種調用方式了。

          同時我也發(fā)現 Spring Boot 這個啟動 run 方法也是提供了普通方法版本的,傳入 args 即可,這樣就不是靜態(tài)調用了。

          現在再把那個選項再次勾選上:

          如圖,它再也不會被替換為類的調用了,因為它調用的就是普通方法。

          總結

          IDEA 的一個小優(yōu)化,確實把我折騰了一翻, IDEA 真的太智能了,有時候幫你優(yōu)化了,你可能還不知道,這個確實要值得注意??!

          其實通過 實例.靜態(tài)成員 這種訪問形式,語法上是可以的,但不建議,靜態(tài)成員毫無疑問是類級別的,自然需要通過類來調用,所以,我建議那個選項也不要取消勾選,默認的就是符合正常規(guī)則的。

          好了,解決了這個疑惑,現在又可以繼續(xù)愉快的寫代碼了。。

          其實 IDEA 也有開源的社區(qū)版本,收費的專業(yè)版也很容易申請到免費激活碼,可以參考教程:

          http://www.javastack.cn/article/2020/intellij-idea-by-open-source-project/

          也可以關注公眾號Java技術棧,回復:IDEA,閱讀我分享過的獲取正版 IDEA 激活碼的教程,很多粉絲都反饋說輕松得到了,感興趣的都可以去申請,不能太容易了。

          關注我,后面棧長會繼續(xù)分享 IDEA 系列教程,帶你打通 IDEA 的任督二脈!

          版權聲明: 本文系公眾號 "Java技術棧" 原創(chuàng),轉載、引用本文內容請注明出處,抄襲、洗稿一律投訴侵權,后果自負,并保留追究其法律責任的權利。








          開工大吉!再發(fā) 10,000 個紅包封面
          2021 年發(fā)生的 10 件技術大事!!
          23 種設計模式實戰(zhàn)(很全)
          換掉 Log4j2!tinylog 橫空出世
          再見單身狗!Java 創(chuàng)建對象的 6 種方式
          勁爆!Java 協程要來了!
          重磅官宣:Redis 對象映射框架來了??!
          推薦一款代碼神器,代碼量至少省一半!
          程序員精通各種技術體系,45歲求職難!
          Spring Boot 3.0 M1 發(fā)布,正式棄用 Java 8
          Spring Boot 學習筆記,這個太全了!



          關注Java技術??锤喔韶?/strong>



          獲取 Spring Boot 實戰(zhàn)筆記!
          瀏覽 62
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  一区二区三区无码专区 | 丝袜足交操逼 | 骚逼片| 91色噜噜狠狠色婷婷 | 99国产精品久久久久久久久久久 |