文章目录
背景
在@Data注解的bean中添加Boolean字段时,set方法正常,get方法无法获取。
第一步、场景复现
在OrderInfo的实体中,新增布尔类型的字段:支付过【hasPaid】
java
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @auth vip
* @Date 2025/1/14 21:34
**/
@Data
public class OrderInfo implements Serializable {
/**
* 订单号
*/
private String orderNo;
/**
* 订单数量
*/
private int orderNum;
/**
* 订单金额-分
*/
private Long orderAmountL;
/**
* 订单金额-元
*/
private BigDecimal orderAmountB;
/**
* 支付金额-元
*/
private Double payAmount;
/**
* 支付过
*/
private boolean hasPaid;
}
直接使用get方法,无法取到hasPaid字段,如下图所示。
第二步、分析问题
查询OrderInfo生成的结构,可以发现基本类型boolean下自动生成的get方法,默认是is开头的,即ishasPaid,如下图所示。
若要取值,则只需要使用 isHasPaid 的方式获取,如下图所示。
第三步、实现方案
若想要使用get方法获取,则使用布尔的包装类Boolean来定义字段,如下图所示。
java
/**
* 支付过
*/
private Boolean hasPaid;
在OrderInfo生成的结构如下所示,即 getHasPaid。
使用时,直接使用get方法即可,实现效果如下图所示。
总结
1、对于 Boolean 布尔类型的包装类型
来声明的字段,有get和set方法,推荐使用。
2、对于 boolean 布尔基本类型
来声明的字段,get方法是默认加is,set字段正常,使用时要注意。