应使用boolean包装类型且字段名不以is开头,避免框架因命名冲突导致属性映射失败;若用boolean则需手动重写getxxx()方法或修改idea模板统一生成getxxx()。

用 Boolean 包装类型定义字段,不以 is 开头命名,就能基本避开 get 方法的命名冲突。
优先使用 Boolean 而非 boolean
IDEA 对 Boolean 字段自动生成的是 getXXX() 方法,符合 JavaBean 规范;而对 boolean 基本类型,默认生成 isXXX(),在反射、序列化、ORM 框架(如 MyBatis、Spring MVC)中容易被误识别为属性名 xxx(去掉 is),导致取值失败或空指针。
- 推荐写法:
private Boolean enabled;→ 自动生成getEnabled()和setEnabled(Boolean) - 避免写法:
private boolean isEnabled;→ 自动生成isEnabled(),框架可能找enabled属性,找不到就报错
字段名坚决不以 is 开头
无论类型是 Boolean 还是 boolean,只要字段名以 is 开头(如 isDeleted),IDEA 会尝试“智能裁剪”,生成 getDeleted() 或 isDeleted(),但框架解析时仍可能按 deleted 去匹配,造成映射断裂。
- 正确命名:
private Boolean deleted;或private Boolean active; - 错误命名:
private Boolean isDeleted;、private boolean isLocked; - 数据库字段若为
is_deleted,应在 ORM 映射层(如 MyBatis 的<resultmap></resultmap>)显式指定 property="deleted",而非依赖自动推断
如必须用 boolean,手动重写 getter
若因性能或习惯坚持用 boolean,请主动覆盖 getter 方法,统一为 getXxx() 形式,确保与 setter 和框架预期一致。
- 写法示例:
private boolean visible;-
public boolean getVisible() { return visible; }← 不写isVisible() public void setVisible(boolean visible) { this.visible = visible; }
统一模板可一劳永逸
在 IDEA 中修改 Getter/Setter 模板,禁用对 is 前缀的自动剥离逻辑,让所有布尔字段都生成标准 getXXX()。模板中关键点是:不调用 $helper.getPropertyName() 的裁剪逻辑,而是直接用字段名首字母大写。
- Getter 模板片段示意:
get$StringUtil.capitalizeWithJavaBeanConvention($field.name)() - 这样
private boolean enabled;就生成getEnabled(),而非isEnabled()
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











