1. 自定義 Getter 模板
場景:
在自定義 POJO 時可能會需要設(shè)置 Getter 和 Setter 方法,在 使用 Model 的
get方法獲取對象屬性時,為了防止空指針,經(jīng)常需要手動去判斷是否為 null。

默認的 Getter 方法實現(xiàn)
比如上圖,使用
getTodoList() 獲取到 todoList 屬性,為了避免空指針,就首先要判斷不為 null。屬性多的話,難免會遺漏,并且會使代碼增多,不美觀…
需求:
希望可以在 generate getter 方法時就自動進行判斷處理,在使用的時候不必額外的判斷 notnull。
如下圖:

自定義模板
方法 & 步驟:
自定義 generate getter 的模板。
-
利用快捷鍵 Alt + Insert 或 Code 菜單 → Generate 呼出 Generate 對話框。
Generate Dialog -
選擇上圖的 Getter 或 Getter and Setter,選擇 右邊的 ··· 按鈕
Getter
Getter And Setter -
點擊 + 新增模板,然后把代碼 copy 過去就好了。
NotNull Getter -
重新 進行 步驟2 ,然后選擇自己剛定義的模板進行生成就好了
Done
getter 模板代碼:
#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}() {
#if ($field.string)
return $field.name == null ? "" : $field.name;
#else
#if ($field.list)
if ($field.name == null) {
return new ArrayList<>();
}
return $field.name;
#else
return $field.name;
#end
#end
}
2. 自定義 文件頭 File Header
File → Settings → Editor → File And Code Templates → Include → File Header
/**
* <pre>
* @author HJY
* @date :${YEAR}/${MONTH}/${DAY}/${HOUR}:${MINUTE}
* desc : 文件描述
* version: 當前版本號
* </pre>
*/
3. 自定義 Java 變量前綴 和 后綴
File → Settings → Editor → Code Style → Java → Code Generation

image.png




