theme: simplicity-green
小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
书接上文
上篇文章我们写到了@Data、@Getter、@Setter、@Value、@ToString
几个注解,基本上可以在实体类中非常快捷的生成getter和setter方法了,当然还有toString等方法。
接下来我们要说的则是关于其构造函数的生成、equals方法、hashcode方法相关的几个注解,不多说,来看吧。
Lombok注解的使用方式
@EqualsAndHashCode
使用位置:用来修饰类
功能:自动生成equals方法、hashcode方法、canEqual方法,这些方法都是根据当前类的属性值来进行重写的。
扩展:在这个基础上,@EqualsAndHashCode
提供了exclude
和of
来对生成的equals等方法的逻辑筛选当前类的属性。
其中exclude用于排除字段,比如@EqualsAndHashCode(exclude = {"username","age"}),或者使用of来指定明确的字段,使用方式都一样。
常用程度:※ ※ ※ ※
@NoArgsConstructor
使用位置:用来修饰类
功能:自动生成当前类的无参构造函数。
常用程度:※ ※ ※ ※ ※
@AllArgsConstructor
使用位置:用来修饰类
功能:自动生成当前类的全参构造函数。
常用程度:※ ※ ※ ※ ※
@RequiredArgsConstructor
使用位置:用来修饰类
功能:根据当前类中修饰的@NonNull注解的变量,以及final标识的变量,为这些字段自动生成相对应的构造函数。
扩展:如果当前类中没有特殊的变量,则会生成一个无参构造函数。
常用程度:※ ※
注意:如果在类中使用了@AllArgsConstructor,建议也一并使用@NoArgsConstructor,因为在Java中,如果已经存在了一个构造函数,默认是可以不再声明无参构造函数了。
小结
本篇文章主要说了@EqualsAndHashCode、@NoArgsConstructor、@AllArgsConstructor、@RequiredArgsConstructor几个注解,以@RequiredArgsConstructor最为不常用,其余的几个注解在日常开发中还是会频繁使用的,大家有兴趣的可以自行去试一下。
下篇文章我们再来说一下Lombok中的其他注解使用方法。