1. 问题
今天发现以前写的 toString() 快捷生成方法 遇到了个问题
就是 属性如果是 boolean
类型的时候 他依旧使用getXXX();
导致方法变红 因为快捷键生成boolean
类型的 get set 方法 名称为 isXXX(); 并非 getXXX();
2. 解决
public java.lang.String toString() {
return new org.apache.commons.lang3.builder.ToStringBuilder(this, org.apache.commons.lang3.builder.ToStringStyle.MULTI_LINE_STYLE)
#foreach ($member in $members)
#if($member.isBoolean() && $member.isPrimitive())
.append("$member.name", is$StringUtil.capitalize($member.accessor)())
#else
.append("$member.name", get$StringUtil.capitalize($member.accessor)())
#end
#end
.toString();
}
取 $member.isBoolean()
来判断该属性对象是否为布尔类型 如果不是 则继续用以前的方法 如果是则将get改为is
[scode type=“yellow” size=“small”]注意: 只有封装布尔类 Boolean
需要处理 原始布尔类boolean
不需要处理
所以还需要同时满足 $member.isPrimitive()
条件才需要将get替换为is[/scode]
完美解决
3. 题外话
如何自定义 toString()快捷生成方法
Alt + INS
—> toString()
—> Settings...
—> Templates
—> +