使用Intellij IDEA自动生成代码,可以帮助我们减少很多重复性的工作,提高生产效率。
比如可以生成toJsonString方法,使我们可以不用依赖fastjson/gson等第三方jar包,就可以轻松实现实体bean转成json字符串,性能也是最优的。
还有我们可能平时有用到BeanUtils进行Bean对象的拷贝,因为我们想节省一堆字段的get、set编码。使用IDEA自动生成对象拷贝的代码也是很轻松的。
优点
快速生成简单重复的代码、性能优秀、减少第三方工具包依赖
缺点
每次类的字段有变化,需要重新使用模板生成新的方法;如果忘记可能会产生BUG
IDEA设置
以下为Intellij IDEA 2019版本的操作步骤,其他版本应该也是类似部署。
- Alt + Insert快捷键
- 选择toString()
- 点击Settings
- 选择Templates
- 点击+
- 填写新模板的名字
- 将模板代码写入
- 保存
模板代码
toJsonString
public java.lang.String toJsonString() {
final java.lang.StringBuilder sb = new java.lang.StringBuilder("{");
#set ($i = 0)
#foreach ($member in $members)
if ($member.name != null) {
#if ($i == 0)
sb.append("#####
#else
sb.append(",####
#end
#if ($member.string)
\"$member.name\":\"")##
#else
\"$member.name\":")####
#end
#if ($member.primitiveArray || $member.objectArray)
.append(java.util.Arrays.toString($member.name));
#elseif ($member.string)
.append($member.accessor).append('\"');
#elseif ($member.date)
.append($member.accessor .getTime());
#else
.append($member.accessor);
#end
#set ($i = $i + 1)
}
#end
sb.append('}');
return sb.toString();
}
toMap
public java.util.Map<String, Object> toMap() {
final java.util.Map<String, Object> map = new java.util.HashMap<>();
#foreach ($member in $members)
map.put("$member.name", this.$member.name);
#end
return map;
}
mapToBean
public $classname(java.util.Map<String, Object> map) {
#foreach ($member in $members)
java.lang.Object $member.name = map.get("$member.name");
if ($member.name != null && $member.name instanceof $member.type) {
this.$member.name = ($member.type) $member.name;
}
#end
}
0条评论