JiuyeXD's Blog
九叶
九叶博主

越努力 越幸运

登录
夜间

IntelliJ IDEA 自定义toString()快捷生成方法布尔类型生成错误的问题解决方案

1. 问题

今天发现以前写的 toString() 快捷生成方法 遇到了个问题

就是 属性如果是 boolean 类型的时候 他依旧使用getXXX();

导致方法变红 因为快捷键生成boolean类型的 get set 方法 名称为 isXXX(); 并非 getXXX();

image.png

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]

完美解决

image.png

3. 题外话

如何自定义 toString()快捷生成方法

Alt + INS —> toString() —> Settings... —> Templates —> +

image.png

image.png

THE END