在Springboot中使用lombok使代碼更加的優雅 https://www.projectlombok.org/
在idea中繼承lombok插件就不說了
今天出現的問題是lombok在繼承關系時,toString方法無法打印基類屬性,比較對象equals的時候也會略過基類屬性,只會比較子類的屬性值是否全等
那么首先去了解一下lombok中我們用的最多的注解@Data
這是在官網上截取的一段@Data的解釋:
@Data是一個方便的快捷方式注釋,它捆綁了@ToString,@EqualsAndHashCode和@Getter/@Setter和@RequiredArgsConstructor它們的特征:換句話說,@Data生成通常與簡單POJO(普通舊Java對象)和bean相關聯的所有樣板:所有字段的getter,所有非的setter最終場,和適當的toString,equals並hashCode實現涉及類的字段和初始化所有final字段,以及不具有初始已打上所有非最終場構造@NonNull,以保證該領域從來都不是空值。
@Data就像具有隱式@Getter,@Setter,@ToString,@EqualsAndHashCode和@RequiredArgsConstructor在類注解(不同之處在於沒有構造將生成如果已經存在任何明確寫入構造函數)。但是,這些注釋的參數(例如callSuper,includeFieldNames和exclude)不能設置@Data。如果您需要為這些參數中的任何一個設置非默認值,只需顯式添加這些注釋; @Data足夠聰明,可以遵循那些注釋。
說白了,它就是很多注解的集合,並且生成的get,set,equals、hashCode都是針對於自己的,如果想同時把父類的也加進來怎么辦呢,其實官網解釋已經給出了說明,就是顯示的指定莫些注解的callSuper參數,
如果說子類和父類要並為同一個對象進行toString,equals判斷那么在類上加入:
1 @ToString(callSuper = true) 2 @EqualsAndHashCode(callSuper = true)
官網很重要
