使用Lombok导致打印的tostring中缺少父类的属性问题
作者:合格的程序员
使用Lombok时,若发现@Data注解的@ToString不包含父类属性,可通过添加@ToString(callSuper=true)解决,此方法确保在生成toString()时包括父类的属性,有效解决只打印子类属性的问题,这种做法对于需要完整信息展示的场景尤为重要
Lombok导致打印的tostring中缺少父类的属性
@Data public class User extends BaseEntity { /** * 姓名 */ @TableField("name") private String name; /** * 密码 */ @TableField("password") private String password; /** * 性别 */ @TableField("sex") private String sex; /** * 年龄 */ @TableField("age") private Integer age; /** * 邮箱 */ @TableField("email") private String email; /** * 排序 */ @TableField("sort") private Integer sort;
图中打印内容只包含子类属性,却不包含父类BaseEntity的属性
此处@Data修饰,此注解包含了getter,setter,tostring
所以此处的tostring如果不设置参数的话,打印string的时候只会包含子类的属性
解决
在@Data的基础上再加一个@ToString(callSuper = true)注解
callSuper = true
即解决缺少父类属性的问题
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。