1.Lombok简述
一个Java类库,主要用于简化Java代码中的大量模板代码,比如:setter/getter方法、toString、流的关闭等
2.Lombok基本使用
引入maven依赖,工具(如:idea)中需安装该插件才能便于操作
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
3.常用注解
@Getter/Setter:编译器自动生成get/set方法
@ToString:编译器自动生成toString方法
@EqualsAndHashCode:编译器自动生成equals、hashCode、canEqual方法
@Data:组合注解(@Getter/Setter/@Getter/Setter/@Getter/Setter),译器自动生成get/set、toString、equals、 hashCode、canEqual方法
@NonNull:设置属性不为null
@NoArgsConstructor:类,无参构造
@RequiredArgsConsturctor:有参构造,针对不为空的属性
@AllArgsConstructor:有参构造,所有参数
@Builder:建造者模式
@Log:日志,无需创建直接使用log对象
@Cleanup:关闭流,无需处理IO流、数据库等关闭操作
@val:变量类型,泛型对象无需指定类型,编译器根据传入值自动编译
4.示例
@Data
类注解,使用该注解,可省略get/set方法,使代码更简洁
@Getter/Setter,访问修饰符AccessLevel
属性注解,如果对特定属性限定访问范围等,可使用该注解
@ToString,包含与不包含属性限制
类注解,可限定类打印时包含与不包含某属性
@NoArgsConstructor @RequiredArgsConsturctor @ AllArgsConstructor
类属性,此三个属性针对构造方法,限定构造方法有无参数、参数数量
@Builder
为一个类提供建造者模式特性