个人总结在平时工作用的比较多的一些Lombok注解(详解)
Lombok是一款非常实用Java第三方插件,自从Lombok插件问世以来就深受许多程序员的热爱与追捧,因为可以给我们节省非常多的代码,从而也使我们的代码更加工整。但是萝卜青菜各有所爱,也有很多程序员或者公司禁止或者反对使用,原因是Lombok对于代码有很强的侵入性。我在平时在工作中也是非常喜欢使用的,我个人认为它的优点是高于它的缺点的。
废话不多说,下面是我个人总结在平时工作用的比较多的一些Lombok注解:
@Getter/@Setter 自动产生 getter/setter方法
@ToString 自动重写 toString() 方法,会印出所有变量
@EqualsAndHashCode 自动生成 equals(Object other) 和 hashcode() 方法,包括所有非静态变量和非 transient 的变量
@NoArgsConstructor 生成一个没有参数的构造器
@AllArgsConstructor 生成一个包含所有参数的构造器
@RequiredArgsConstructor 生成一个包含 "特定参数" 的构造器,特定参数指的是那些有加上 final 修饰词的变量们
@Data 整合包,只要加了 @Data 这个注解,等于同时加了以下注解 @Getter/@Setter @ToString @EqualsAndHashCode @RequiredArgsConstructor
@Value 也是整合包,但是他会把所有的变量都设成 final 的,其他的就跟 @Data 一样,等于同时加了以下注解 @Getter (注意没有setter) @ToString @EqualsAndHashCode @RequiredArgsConstructor
@Builder 自动生成流式 set 值写法,从此之后再也不用写一堆 setter 了
@Slf4j 自动生成该类的 log 静态常量,要打日志就可以直接打,不用再手动 new log 静态常量了 除了 @Slf4j 之外,lombok 也提供其他日志框架的变种注解可以用,像是 @Log、@Log4j...等,他们都是帮我们创建一个静态常量 log,只是使用的库不一样而已