(1)Getter和Setter 生成代码的同时注释
添加新模板
输入模板生产代码:
其实就是InteliJ Default默认模板上面我们添加了生产注释,Getter的生成代码就是默认模板的。
Getter模板代码如下:
/** * 获取 $field.name. * * @return 返回 $field.name */ #if($field.modifierStatic) static ## #end $field.type ## #set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project)))) #if ($field.boolean && $field.primitive) is## #else get## #end ${name}() { return $field.name; }
Setter同理,Setter的注释模板如下:
/** * 设置 $field.name 的值 * * <p>可以通过$StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project)))() 来获取 $field.name 的值</p> * * @param $field.name $field.name */ #set($paramName = $helper.getParamName($field, $project)) #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; }
效果示例:
(2)函数注释模板
添加模板组:
输入组名:
新建Live Template:
添加模板,模板格式可能需要 根据效果调整:
设置应用到哪些类型的文件,我们选java(里面还可以细分,没做更深入尝试):
展开方式,即输入Abbreviation中的快捷键之后,按什么键使用模板,默认是Tab键:
编辑变量:
VAR1中填入以下内容:
groovyScript("def result=''; def params="${_1}".replaceAll('[\\[|\\]|\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) { if(i!=0)result+= '* '; result+='@param ' + params[i] + ((i < (params.size() - 1)) ? '\n' + '\t' : ''); }; return result", methodParameters())
然后点击【OK】--> 【Apply】-->【OK】。
效果示例:
直接按我们定义的快捷键*然后再Tab键的话输出的就是模板的内容,我这里保留IDEA注释的习惯,反斜杠两个*之后再Tab键。
也可以自定义快捷键和修改模板实现直接输出的就是注释。
(3)文件头注释模板
效果示例:
整体效果示例:
package com.autoai.nglp.aiso.topicagent.service.gas; import java.io.IOException; /** * description : * * @author : hucm * @project : topic-service * @filename TestComments * @date : Created in 2019/7/19 16:55 */ public class TestComments { private String str; /** * 获取 str. * * @return 返回 str */ public String getStr() { return str; } /** * 设置 str 的值 * * <p>可以通过Str() 来获取 str 的值</p> * * @param str str */ public void setStr(String str) { this.str = str; } /** * @description : * @param param1 * @param param2 * @return java.lang.String * @author hucm * @date 2019/7/19 16:55 * @throws */ public String func(String param1, Integer param2) throws IOException { return ""; } }