序言
网上有很多关于新建类的注释生成、java方法的快捷注释,这里不做赘述,只针对我百度了两页答案关于有返回值的renturn是空行或者* 的问题还没找到自己的一种思路解决。强迫症患者强推!!
1.问题
先直接上有空行return的注释情况
解决后的情况
2.创建模板步骤
中文:文件 - 设置 - 编辑器 - 实时模板
英文:File - Settings - Editor - Live Templates
右上角加号先添加模板组,然后再添加模板,按图添加一遍就行(展开方式看个人习惯Enter或Tab)。
模板文本:
**
*
* @author ghost
* @date $date$ $time$
$param$
$return$*/
模板变量:
param:
groovyScript("def result = '';def params = \"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {if(params[i] != '')result+='* @param ' + params[i] + ' ' +((i < params.size() - 1) ? '\\r\\n ' : '')}; return result == '' ? null : result", methodParameters())
return:
groovyScript("def returnType = \"${_1}\"; def result ='';if(returnType=='null'||returnType=='void'){return;}else{result += '* @return ';cls = returnType.split('<');for(i = 0; i < cls.size(); i++){temp = cls[i].tokenize('.');result += temp[temp.size() - 1] + ((i < cls.size() - 1) ? '<' : '');};return result + ' \\r\\n ';}", methodReturnType());
到此,你们想要的无返回值void方法的注释就处理好了(param为空的修改已追加到最下面了)。想了解解决思路的往下看↓
3.解决思路
网上百度前面的答案return代码都是下面这种
**
*
* @author ghost
* @date $date$ $time$
$param$
$return$
*/
groovyScript("def returnType = \"${_1}\"; def result ='';if(returnType=='null'||returnType=='void'){return;}else{result += '* @return ';cls = returnType.split('<');for(i = 0; i < cls.size(); i++){temp = cls[i].tokenize('.');result += temp[temp.size() - 1] + ((i < cls.size() - 1) ? '<' : '');};return result + ' ';}", methodReturnType());
这种在判断没有return类型时会默认返回null、空白,因为注释结尾默认需要空行*/收尾 所以就会变成特别丑的空白,还需要我们自行手动进行删除行操作,费事费力。
所以我们何不直接让没有return类型时直接返回*/呢?这样当void时问题就解决了。
而因为$return$*/参数与注释结尾连接了,所以当有参数时也会造成return xxx*/这样的注释。
这里我们把默认有参数时换行加上,问题就迎刃而解了(代码在第二步)。
到此,return空行问题就解决了,param可以同理借助换行思路处理此问题!
------------------------------------------------------param分割线---------------------------------------------------------
因为同事也要使用的原因,就把param也给一起改了下,防止没有参数时空行~手懒得童鞋可以直接抄了。
模板文本:
**
* 请详细描述方法
* @author ghost
* @date $date$ $time$
$param$$return$*/
param:
groovyScript("def result = '';def params = \"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {if(params[i] != '')result+='* @param ' + params[i] + ' ' +((i < params.size() - 1) ? '\\r\\n ' : '\\r\\n ')}; return result == '' ? null : result", methodParameters())