IDEA 生成方法注释 加入所有参数到注释并填写参数默认值同时生成javadoc文档@param注解当成字符串解理

由于想规范下一下项目的注释, 所以首先得规范一下IDEA的注释模板, 创建类跟在方法上的注释模板怎么设置我就不说了, 网上太多的教程了, 我在这里要说的是稍微高级一点的 如何个性化 自定义

我的方法注释模板如下

IDEA 生成方法注释 加入所有参数到注释并填写参数默认值同时生成javadoc文档@param注解当成字符串解理_第1张图片

$params$ 参数的定义在右边的编辑变量里

IDEA 生成方法注释 加入所有参数到注释并填写参数默认值同时生成javadoc文档@param注解当成字符串解理_第2张图片

params 里面的代码是从一些你抄我, 我抄你的播客中复制过来的如下

groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();  
for(i = 0; i < params.size(); i++) { 	
	result+='* @param ' + ((i < params.size() - 1) ? '\\n\\b' : '') 
};  
return result", methodParameters())

由于我的页面好多地方都有这三个参数

  public String init(Model model, Pager pager, MusicGroup record)

并且这三个参数的作用跟中文描述也是固定的,  如果按照以上写法每次创建完就是下面这个样子

IDEA 生成方法注释 加入所有参数到注释并填写参数默认值同时生成javadoc文档@param注解当成字符串解理_第3张图片

由于不想每次都手动将参数的中文描述写成下面这样

IDEA 生成方法注释 加入所有参数到注释并填写参数默认值同时生成javadoc文档@param注解当成字符串解理_第4张图片

于是我将代码改照成了以下样子

groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();  
for(i = 0; i < params.size(); i++) { 	
	result+= params[i].equals('model') ? ' 存放数据的容器' : ''; 	
	result+= params[i].equals('pager') ? ' 分页对象模型' : ''; 	
	result+= params[i].equals('record') ? ' 查询条件参数' : ''; 	
	result+='* @param ' + ((i < params.size() - 1) ? '\\n\\b' : '') 
};  
return result", methodParameters())

真如我预期想法, 在方法注释上输入 /** 按回国后出现了我想要的结果

IDEA 生成方法注释 加入所有参数到注释并填写参数默认值同时生成javadoc文档@param注解当成字符串解理_第5张图片

到这里本以为事情搞定了, 可这里确埋下了一个很大的坑,  你仔细看这几个 @param 有两个是没有下滑线的 没有下滑线 个人认为java 把@param他是当做一个字符串, 并不是把@param当成一个注解, 为了验证于是我将代码生成了 javadoc文档, 果不其然, 他的确将没有下滑线的 @param注释 当成了一个字符串去处理 生成的doc文档如下

IDEA 生成方法注释 加入所有参数到注释并填写参数默认值同时生成javadoc文档@param注解当成字符串解理_第6张图片

 

也许这个时候你会问 这有什么关系, 我看的是代码又不生成 javadoc文档, 如果这样想你就大错特错了

因为你无法保证你的项目经理在哪天会说这个项目要生成 javadoc, 也无法保证项目在交付的时候客户要求说需要文档,

如果到项目交付时再一个个去改, 项目大的话估计要好几天先不说, 而且还因为这个问题引响到项目交付日期, 带来客户和老板的抱怨, 所以一开始发现这个问题就要去解决它

至于解决的过程经过八八六十四 还是九九八十一难才定位到问题的根源这里就不说了, 直接将结果抛出来吧

因为我在解决问题的时候发现 如果你在 @param 后敲个回车再手动写个@param的时候这时写的这个@param是有下滑线的,

因此我得出一个结论就是 代码在拼接    * @param 的时候少写了个 \n 回车健,  正所谓你有政策我有对策, 程序员不怕问题, 就怕找不到问题, 竟然找到了问题所在, 于是我将代码改成如下 

groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();  
for(i = 0; i < params.size(); i++) { 	
	result+=((i > 0) ? '\\n* ' : '* ');
	result+='@param ' + params[i]; 	
	result+= params[i].equals('model') ? ' 存放数据的容器' : ''; 	
	result+= params[i].equals('pager') ? ' 分页对象模型' : ''; 	
	result+= params[i].equals('record') ? ' 查询条件参数' : ''; 	
};  
return result", methodParameters())

接着重新按下 /** + 回车 出现了我预期的效果 如下,

看清楚每个@param都是有下滑线 并且后面的参数按住 control 鼠标点击是会定位的 至于上面的面代为什么不用 if else 写 而用三目运算 我告诉你 这不是java代码 用if是会报错的

IDEA 生成方法注释 加入所有参数到注释并填写参数默认值同时生成javadoc文档@param注解当成字符串解理_第7张图片

重新生成javadoc 参数显示也正常了 如下

IDEA 生成方法注释 加入所有参数到注释并填写参数默认值同时生成javadoc文档@param注解当成字符串解理_第8张图片

 

这样你就不怕哪里客户或老板跟你要项目的 doc文档了

 

 

 

 

你可能感兴趣的:(spring-mvc,java)