lombok使用中出现继承关系的对象时,出现的问题及解决办法

在Springboot中使用lombok使代码更加的优雅 https://www.projectlombok.org/ide

在idea中继承lombok插件就不说了函数

今天出现的问题是lombok在继承关系时,toString方法没法打印基类属性,比较对象equals的时候也会略过基类属性,只会比较子类的属性值是否全等ui

那么首先去了解一下lombok中咱们用的最多的注解@Dataidea

这是在官网上截取的一段@Data的解释:spa

@Data是一个方便的快捷方式注释,它捆绑了@ToString@EqualsAndHashCode@Getter/@Setter@RequiredArgsConstructor它们的特征:换句话说,@Data生成一般与简单POJO(普通旧Java对象)和bean相关联的全部样板:全部字段的getter,全部非的setter最终场,和适当的toStringequalshashCode实现涉及类的字段和初始化全部final字段,以及不具备初始已打上全部非最终场构造@NonNull,以保证该领域历来都不是空值。插件

@Data就像具备隐式@Getter@Setter@ToString@EqualsAndHashCode@RequiredArgsConstructor在类注解(不一样之处在于没有构造将生成若是已经存在任何明确写入构造函数)。可是,这些注释的参数(例如callSuperincludeFieldNamesexclude)不能设置@Data若是您须要为这些参数中的任何一个设置非默认值,只需显式添加这些注释; @Data足够聪明,能够遵循那些注释。code

说白了,它就是不少注解的集合,而且生成的get,set,equals、hashCode都是针对于本身的,若是想同时把父类的也加进来怎么办呢,其实官网解释已经给出了说明,就是显示的指定莫些注解的callSuper参数,对象

若是说子类和父类要并为同一个对象进行toString,equals判断那么在类上加入:blog

1 @ToString(callSuper = true)
2 @EqualsAndHashCode(callSuper = true)

官网很重要继承

相关文章
相关标签/搜索