一乱灵、類注釋
在IDEA中打開File-Settings
瓦盛,在Settings
中打開Editor-File and Code Templates
律秃,在左邊的Files
中選中Class
拧烦。
如上圖佑刷,
Class
編輯框中莉擒,編寫如下代碼:
/**
* @Author: ${user}
* @createTime: ${YEAR}年${MONTH}月${DAY}日 ${HOUR}:${MINUTE}:${SECOND}
* @version: ${version}
* @Description: ${description}
*/
上述代碼生成效果如下:
/**
* @Author:
* @createTime: 2022年04月05日 23:56:34
* @version: 1.0
* @Description:
*/
- @Author: 作者,可以直接寫上瘫絮。也可以配置
${user}
涨冀,在創(chuàng)建類時會提示添加。- @Description: 類描述麦萤,可以直接寫上鹿鳖。也可以配置
${description}
,在創(chuàng)建類時會提示添加壮莹。- @version: 版本翅帜,可以直接寫上。也可以配置
${version}
命满,在創(chuàng)建類時會提示添加涝滴。- @createTime:創(chuàng)建日期,可以如上寫法自定義格式胶台。
配置完成后歼疮,勾選Enable Live Templates
。
二诈唬、方法注釋
在Settings
中打開Editor-Live Templates
韩脏,如下圖:
1 創(chuàng)建分組 Template Group
點擊 " + " 號,選擇Template Group
铸磅,接著在彈出框中設置好這個組的名字赡矢,點擊確定杭朱,例如:myMethodTemplates
。
2 在分組里創(chuàng)建一個 Live Template 模版
選中上面我們剛剛創(chuàng)建的分組myMethodTemplates
吹散,然后點擊 " + " 號痕檬,選擇Live Template
。
3 配置 Live Template 模版
接下來就是創(chuàng)建注釋模版了送浊。
**
* @author: $user$
* @createTime: $date$ $time$
* @description: $description$
$param$
$return$
*/
上面配置的效果如下:
/**
* @author:
* @createTime: 2022年04月06 12:00:00
* @description:
* @param: name - [java.lang.String]
* @param: age - [int]
* @return: java.lang.String
*/
public String test(String name ,int age){return "";}
3.1 配置Abbreviation
Description
上圖中Abbreviation
設置項 梦谜,是在我們要生成注釋時,選擇自己的某一個Live Template
模版的快捷提示唁桩。
什么意思呢?
/x...
public void test(){}
如上荒澡,/
意思是我們要加注釋与殃,開頭為啥是/
后面再說。x
就是Abbreviation
中設置的縮寫幅疼。我們在Template Group
中可能還有其他的模版,例如:a
悴晰、b
等逐工,我們可以根據(jù)這個來選擇使用不同的模版注釋。設置這個縮寫也會彈窗提示棕硫,就像代碼提示那樣。
重要提示:不要把
Abbreviation
設置成斜杠哈扮,因為這會導致注釋無法獲取方法參數(shù)。
設置成其他的字母或是符號都可以瘤泪,這個看個人喜好灶泵,最好不要設置成 *
(星號),以防我們不需要模版時誤導入对途。
Description
是對模版的說明,或是說對這個Abbreviation
縮寫的說明髓棋,防止我們寫代碼時和要寫的代碼提示沖突实檀。
3.2 配置Template text
這個就是配置生成的注釋的格式:
**
* @author: $user$
* @createTime: $date$ $time$
* @description: $description$
$param$
$return$
*/
如上惶洲,開頭不要有/
,因為會造成方法參數(shù)無法獲取膳犹,我們在方法上面生成注釋時恬吕,需要先寫斜杠,然后再輸入Abbreviation
設置的模版縮寫须床,這時 IDEA 會提示這個模版铐料。
下面我們對模版進行說明:
例:@author: $user$
@author:這個是我們需要配置的項
$user$ :這個可以自己寫,也可以使用雙$符來標記變量豺旬,使用雙$符時钠惩,在我們配置 Edit variables 時,里面會顯示 user 項族阅。
例:$param$
$param$:這個前面沒有星號篓跛,是因為我們在后續(xù)配置 Edit variables 時,表達式里面已經(jīng)加上了坦刀,所以此處不加愧沟。
對于模版的格式中的各個項,我們可以根據(jù)自己需求去添加鲤遥。
3.3 配置Edit variables
我們點擊Edit variables
后會彈出Edit variables
變量配置框沐寺。
Name:
是Template text
中的變量名,就是雙$符中間的變量盖奈。
Expression:
是變量如何獲取的表達式芽丹。
Default value:
是設置變量的默認值。
Skip if defined:
這一項需要勾選上卜朗。
接下來開始講比較重要的Expression
表達式拔第。IDEA內置了一些表達式,可以點擊Expression
項后面的箭頭查看场钉。我們可以選擇IDEA提供的內置表達式,也可以自己寫groovyScript
來達到自己想要的效果逛万,寫完之后復制粘貼進Expression
中即可宇植,后面會講解如何寫groovyScript
指郁。
接下來講解幾個常用的:
user()
會自動獲取系統(tǒng)名闲坎。date("yyyy年MM月dd")
date()獲取年月日的信息,通過傳入格式化方式的字符串來自定義日期格式项秉。time("HH:mm:ss")
同date()函數(shù)娄蔼。param
return
這兩個需要寫groovyScript
表達式岁诉,在下面再講唉侄。
groovyScript表達式:
格式:groovyScript("[邏輯判斷代碼]",[獲取參數(shù)表達式(此處為IDEA內置)])
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())
IDEA變量表達式使用了
groovyScript
属划,上述代碼是根據(jù)IDEA內置methodParameters()
函數(shù)獲取的值重新處理的成想要的格式同眯。
methodParameters()
函數(shù)獲取的值格式為:[name, age]
须蜗。
上述代碼中:
${_1}
獲取方法參數(shù)明肮。${_1}
也就是上述代碼末尾的methodParameters()
,如果獲取參數(shù)表達式有兩個陷猫,可以通過${_2}
獲取第二個的結果绣檬。- 然后通過
for
循環(huán)將多個參數(shù)分行娇未,形成多個@param
。三目運算就是判斷是否還有參數(shù)搁凸,如果有就分行。
@param設置
下面提供幾種方法參數(shù)的格式:
- 不帶參數(shù)類型嚼松,例如:
@param: name
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())
- 帶參數(shù)類型,全類名献酗,例如:
@param: name - [java.lang.String]
groovyScript(
"def result='';
def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();
def paramTypes=\"${_2}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();
for(i = 0; i < params.size(); i++) {
if(params[i].size() > 0){
result += '* @param: ' + params[i] + ' - [' + paramTypes[i] + ']' + ((i < params.size() - 1) ? '\\n ' : '')
}else{
result += '* @param: ' + params[i] + ' ' + paramTypes[i] + ((i < params.size() - 1) ? '\\n ' : '')
}
};
return result;"
, methodParameters(), methodParameterTypes())
- 帶參數(shù)類型,僅類名,例如:
@param: name - [String]
groovyScript(
"def result='';
def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();
def paramTypes=\"${_2}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();
for(i = 0; i < params.size(); i++) {
def types = paramTypes[i].split('\\\\.').toList();
if(params[i].size() > 0){
result += '* @param: ' + params[i] + ' - [' + types[types.size()-1] + ']' + ((i < params.size() - 1) ? '\\n ' : '')
}else{
result += '* @param: ' + params[i] + ' ' + types[types.size()-1] + ((i < params.size() - 1) ? '\\n ' : '')
}
};
return result;"
, methodParameters(), methodParameterTypes())
也可以根據(jù)自己的格式需求颜及,在groovyScript
自行更改俏站。
@return配置
groovyScript("def returnType = \"${_1}\"; def result = '* @return: ' + returnType; return result;", methodReturnType());
關于date
相關的肄扎,我們可以用IDEA內置的表達式犯祠,然后傳入自己的格式化規(guī)則字符串即可衡载。例如:date("yyyy年MM月dd") time("HH:mm:ss")
月劈。
3.4 配置 Options
Options
中的Expand with
是快捷鍵的配置猜揪,默認是Tap
鍵而姐。
3.5 配置模版應用范圍
圖中紅色方框處就是配置應用范圍的地方钧萍,在為配置前為
Define
风瘦,在配置后為 Change
万搔。點擊既可以配置瞬雹。可以選擇
Everwhere
在每一個地方都應用酗捌,也可以選擇對應的哪一種語言或什么位置會出現(xiàn)Abbreviation
縮寫彈窗提示胖缤。
寫在最后:
- 如果文章中有錯誤或是表達不準確的地方草姻,歡迎大家評論中指正撩独,以便我完善综膀。
- 我也會根據(jù)所學到新的知識不斷對文章進行更新剧劝。