近日在研究重构代码的时候有用到idea的不少插件,比如checkstyle,同时下载了阿里的开发规约,受到不少启发。
规约中会要求所有的方法都有javadoc,但是通常我们用idea默认生成的getter和setter方法是不带注释的,当然,我们同样可以设置idea像myeclipse一样生成带有javadoc的模板,具体解决方案如下:
比如我们有这么一个pojo类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
/**
* 人类.
* @author eric
*/
public final class people {
/**
* 姓名.
*/
private string name;
/**
* 年龄.
*/
private integer age;
}
|
这个时候我们按下 alt + insert (windows),或者 command + n (macos)来打开生成窗口:
这里我们选择getter and setter。
打开如下窗口:
我们点击如图箭头所示的地方,打开如下视图:
然后我们新建一个template,点击图中的 "+" 号,然后输入名称(当然你可以起个自己喜欢的名称)
点击ok。之后在编辑区域复制粘贴如下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
/**
* gets the value of $field.name
* @return the value of $field.name
*/
public ##
# 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}() {
return $field.name;
}
|
完毕后点击ok。
setter的配置同上一致,我们只需将编辑区内的代码改下(当然template name也可以改下:d):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
/**
* sets the $field.name
* <p>you can use get$stringutil.capitalizewithjavabeanconvention($stringutil.sanitizejavaidentifier($helper.getpropertyname($field, $project)))() to get the value of $field.name</p>
* @param $field.name $field.name
*/
#set($paramname = $helper.getparamname($field, $project))
public ##
# 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;
}
|
下面就让我们来看下成果:
在这里注意要选择我们刚配置好的template,而不是default。
点击ok。
到这里算是大功告成了。
总结
以上所述是小编给大家介绍的idea设置生成带注释的getter和setter的图文教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:https://www.cnblogs.com/chansblogs/p/9050246.html