Loading... ## 1. 问题 今天发现以前写的 toString() 快捷生成方法 遇到了个问题 就是 属性如果是 `boolean` 类型的时候 他依旧使用getXXX(); 导致方法变红 因为快捷键生成`boolean`类型的 get set 方法 名称为 isXXX(); 并非 getXXX(); ![image.png](https://old.qwq.ro/usr/uploads/2022/03/3133997214.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 <div class="tip inlineBlock warning simple small"> 注意: 只有封装布尔类 `Boolean` 需要处理 原始布尔类`boolean`不需要处理 所以还需要同时满足 `$member.isPrimitive()`条件才需要将get替换为is </div> 完美解决 ![image.png](https://old.qwq.ro/usr/uploads/2022/03/332469692.png) ## 3. 题外话 如何自定义 toString()快捷生成方法 `Alt + INS` ---> `toString()` ---> `Settings...` ---> `Templates` ---> `+` ![image.png](https://old.qwq.ro/usr/uploads/2022/03/1885663700.png) ![image.png](https://old.qwq.ro/usr/uploads/2022/03/3534400789.png) Last modification:March 21, 2022 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 0 感谢大佬投喂 啾咪~