AS - 自定义模板

1. 自定义 Getter 模板

场景:

在自定义 POJO 时可能会需要设置 Getter 和 Setter 方法,在 使用 Model 的 get 方法获取对象属性时,为了防止空指针,经常需要手动去判断是否为 null。

AS - 自定义模板_第1张图片
默认的 Getter 方法实现

比如上图,使用 getTodoList() 获取到 todoList 属性,为了避免空指针,就首先要判断不为 null。属性多的话,难免会遗漏,并且会使代码增多,不美观…

需求:

希望可以在 generate getter 方法时就自动进行判断处理,在使用的时候不必额外的判断 notnull。

如下图:


AS - 自定义模板_第2张图片
自定义模板

方法 & 步骤:

自定义 generate getter 的模板。

  1. 利用快捷键 Alt + Insert 或 Code 菜单 → Generate 呼出 Generate 对话框。


    AS - 自定义模板_第3张图片
    Generate Dialog
  2. 选择上图的 Getter 或 Getter and Setter,选择 右边的 ··· 按钮


    AS - 自定义模板_第4张图片
    Getter

    AS - 自定义模板_第5张图片
    Getter And Setter
  3. 点击 + 新增模板,然后把代码 copy 过去就好了。


    AS - 自定义模板_第6张图片
    NotNull Getter
  4. 重新 进行 步骤2 ,然后选择自己刚定义的模板进行生成就好了


    AS - 自定义模板_第7张图片
    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

/**
 * 
 *     @author HJY
 *     @date  :${YEAR}/${MONTH}/${DAY}/${HOUR}:${MINUTE}
 *     desc   : 文件描述
 *     version: 当前版本号
 * 
*/

3. 自定义 Java 变量前缀 和 后缀

File → Settings → Editor → Code Style → Java → Code Generation


AS - 自定义模板_第8张图片
image.png

你可能感兴趣的:(AS - 自定义模板)