IDEA設置生成帶註釋的getter和setter解決方案 (圖文教程)

近日在研究重構代碼的時候有用到idea的不少插件,比如CheckStyle,同時下載了阿里的開發規約,受到不少啓發。

規約中會要求所有的方法都有Javadoc,但是通常我們用idea默認生成的getter和setter方法是不帶註釋的,當然,我們同樣可以設置idea像MyEclipse一樣生成帶有Javadoc的模板,具體解決方案如下:

 

比如我們有這麼一個pojo類:

複製代碼
/**
 * 人類.
 * @author eric
 */
public final class People {

    /**
     * 姓名.
     */
    private String name;
    /**
     * 年齡.
     */
    private Integer age;

}
複製代碼

這個時候我們按下 Alt + Insert (Windows),或者 Command + N (MacOS)來打開生成窗口:

這裏我們選擇Getter and Setter。

打開如下窗口:

我們點擊如圖箭頭所示的地方,打開如下視圖:

 

然後我們新建一個Template,點擊圖中的 "+" 號,然後輸入名稱(當然你可以起個自己喜歡的名稱)

點擊OK。之後在編輯區域複製粘貼如下代碼:

複製代碼
/**
 * Gets the value of $field.name
 * @return the value of $field.name
 */
public ##
#if($field.modifierStatic)
    static ##
#end
$field.type ##
#set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project))))
#if ($field.boolean && $field.primitive)
    #if ($StringUtil.startsWithIgnoreCase($name, 'is'))
        #set($name = $StringUtil.decapitalize($name))
    #else
        is##
    #end
#else
    get##
#end
${name}() {
    return $field.name;
}
複製代碼

 圖示:

 

完畢後點擊OK。

 

Setter的配置同上一致,我們只需將編輯區內的代碼改下(當然Template Name也可以改下:D):

複製代碼
/**
 * Sets the $field.name
 * <p>You can use get$StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project)))() to get the value of $field.name</p>
 * @param $field.name $field.name
 */
#set($paramName = $helper.getParamName($field, $project))
public ##
#if($field.modifierStatic)
    static ##
#end
void set$StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project)))($field.type $paramName) {
#if ($field.name == $paramName)
    #if (!$field.modifierStatic)
        this.##
    #else
        $classname.##
    #end
#end
$field.name = $paramName;
}
複製代碼

 

下面就讓我們來看下成果:

在這裏注意要選擇我們剛配置好的Template,而不是Default。

點擊OK。

到這裏算是大功告成了。

 

當然,你也可以參考我的寫法來自定義生成的註釋的風格和樣式,僅供參考。

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