IntelliJ IDEA設置方法註釋模板並解決入參和返回值爲空問題

## 簡介
網上講解設置方法註釋模板的文章很多,嘗試了很多方法後,發現在方法體外生成的模板入參值和返回值都是null,而放到方法體內的入參值和返回值就可以自動生成。苦試N次,終於發現訣竅。Idea的這個設置真的不太人性化,建議完善。此設置浪費了自己很多時間,固分享於此,望助你解決問題。本方法適用於IntelliJ IDEA 2019.3 x64及之後版本(截止到發稿日期最新版:2020.03版)應該都可以使用。

一.打開實時模板,新建模板組

  1. 依次點擊:【File】-->【settings】-->【Editor】-->【Live Templates】,點擊右上角的+號後, 選擇Template Group
  2. 在彈出框中,隨意輸入個英文名:Method Comment(名字隨便起),點擊ok

在這裏插入圖片描述

二.創建實時模板

  1. 必須單擊選中上一步驟中創建的模板組Method Comment,然後再次點擊右上角的+號,選擇live Template

  2. Abbreviation文本框輸入x

在這裏插入圖片描述

此處定義的是創建日誌的快捷鍵,在方法上面一行,輸入/x+ 回車,會自動生成註釋模板,可以根據自己的喜好定製快捷鍵。
之所以設置成x,而沒有使用*,是因爲這樣可以兼容IDEA自帶的塊註釋。我們要使用塊註釋或系統自帶的方法註釋時,還是跟以前一樣輸入/*+ 回車或者/**+ 回車,你會發現原來的註釋模板依然能有自動生成,並沒有被我們自定義的替換掉。這樣就無縫兼容系統模板了。當然,如果你不在需要系統模板,也是可以用*作爲快捷鍵,直接替換掉系統自帶的方法註釋或塊註釋。

** 如果設置成其他字母會出現什麼後果? **
如果編碼時,有一個對象中有一個屬性是以你設置的字母開頭的,當我們輸入對象,再輸入.時(如過設置爲’s’,你在用set方法時,輸入:user.s),idea提示下拉框中第一項,就會出現我們自定義的方法模板提示,爲了降低這種現象,我們使用x,因爲英語字母中以x開頭的單詞較少,出現這種情況的機率就比較低。我們不設置成*,也有一部分原因是,輸入*,要按shift+8,這本身就不快捷。所以經過我嘗試後,最推薦的是x鍵。你可能會想到,用數字鍵1,不是更好嗎?英語單詞和對象屬性都沒有數字開頭的,不就避免了這個問題嗎?這個我也想到並試驗過了,確實沒有屬性是以數字開頭,但是當你屬性以數字結尾的時候,按回車,會自動生成方法註釋。所以數字當快捷鍵也不太舒服。

  1. Description中隨意輸入個描述即可,對配置無任何影響。
  2. Template Text文本框中輸入以下模板(關鍵步驟,十分重要)。
**
 * $discription$
 $params$
 $return$
 * @Author: 大腦補丁on $date$ $time$
 */

模板首行開頭是沒有/,爲何這樣定義模板?
這樣定義模板,是因爲我們要通過/和上文 Abbreviation設置的快捷鍵,組合在一起使用,作爲觸發模板的快捷鍵。只有當輸入了/後,再輸入我們自定義的 Abbreviation中的快捷鍵x,才能觸發註釋我們自定義的註釋。這樣在寫代碼時,輸入x的時候,彈出的候選項中是不會有註釋模板的,不會干擾我們正常寫代碼。如下圖,我們輸入x,提示框不會包含註釋模板。這樣的好處是,自定義註釋模板不會侵入正常編碼(不需要寫註釋的時候,不會在彈框中提示)。
在這裏插入圖片描述

其次,這樣定義模板,能解決入參和返回值爲空問題,如果在模板首行開頭加入/,則生成的模板中,將可能獲取不到入參值和返回值,可能會顯示爲null。

  1. 點擊底部的DefineChange按鈕,在彈出的複選框列表中,勾選Java或者只勾選Java下的 other

在這裏插入圖片描述

只勾選other的效果,在寫java代碼時,在聲明方法時候,輸入/x+ 回車(上文設置的快捷鍵),可以彈出註釋模板,在其他位置不彈出,比如在方法體內、在類名上輸入/x+ 回車,都不會生成模板。如果全選java,在Java代碼的任意位置輸入/x+ 回車,都可以生成模板。我們生成方法註釋的使用場景,當然是當鼠標在方法體上面一行閃爍的時候,纔會使用;鼠標在其他位置閃爍時,我們是不需要添加方法註釋的,所以建議只勾選other,來控制這一效果。

  1. Expand with 下拉框中,選擇Enter
    輸入完快捷鍵/x後,再按回車鍵Enter,即可自動生成註釋模板。而系統默認是Tab鍵。經測試後發現,不設置此選項,按回車Enter也生效。

三.編輯變量

  1. 點擊右側Edit variables,參考下圖,輸入下列參數即可。
    注: 彈出框中的參數,是由上文中Template Text 中的參數控制,你可以在模板代碼中調整參數。
    在這裏插入圖片描述

Default value欄目中所需要的腳本:

params腳本:

groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {result+='* @param ' + params[i] + ((i < params.size() - 1) ? '\\n ' : '')}; return result", methodParameters())

return腳本:

groovyScript("def returnType = \"${_1}\"; def result = '* @return ' + returnType; return result;", methodReturnType());
  1. 點擊ok,關閉編輯變量窗口。再點擊Applyok關閉設置窗口,至此配置完成。

四.如何使用

在java代碼中的方法體上一行單擊後,輸入/x會彈出提示框,第一個選項x就是我們自定義的方法註釋模板,再按回車鍵Enter,就可以自動生成代碼模板了。
在這裏插入圖片描述

生成的模板效果如下,返回值和參數都能成功獲取到:
在這裏插入圖片描述

五. 總結

IDEA的模板定製功能很強大,但裏面有很多隱藏的細節,相信本文已經講透了,尤其是在設置模板的時候,爲什麼設置快捷鍵爲字母‘x’,而不用*,爲什麼生成的模板中入參和返回值爲null以及如何避免都在這寫清楚了。而且IDEA一直在升級迭代,老版本和新版本可能會不同,本文是基於IntelliJ IDEA 2019.3 x64版本實現的,所以看網上五花八門的教程時候,一定要注意比對版本,希望對你有幫助,覺得有用別忘了收藏點贊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章