lombok这个插件让人变得更懒,不对,是避免重复工作。
@Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
其他属性和骚操作,看下这个,写得比较好。
https://www.cnblogs.com/heyonggang/p/8638374.html
一般使用步骤:
pom.xml中引入插件
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
在类上面直接加@data就会自动添加好多方法
IDEA配置安装一个插件:
自己感受下吧
使用说明
问题总结:
使用@Data带来的问题:
对于父类是Object且使用了@EqualsAndHashCode(callSuper = true)
注解的类,这个类由 Lombok 生成的equals()
方法只有在两个对象是同一个对象时,才会返回 true ,否则总为 false ,无论它们的属性是否相同。
解决办法:
- 用了
@Data
就不要有继承关系。 - 自己重写
equals()
, Lombok 不会对显式重写的方法进行生成。 - 显式使用
@EqualsAndHashCode(callSuper = true)
, Lombok 会以显式指定的为准。
个人习惯,不使用@Data,需要什么功能,使用哪个注解。