Lombok应用
Lombok插件能够为实体类自动生getter、setter、tostring方法,可提高开发效率。
- 下载
older versions - 安装
运行lombok.jar
java -jar .\lombok.jar命令执行完成后会弹出如下对话框,对话框中会把所有的eclipse路径都查询出来,如果没有找到,也可以通过 Specify location 按钮指定位置。
点击 Install/Update 进行安装
在pop.xml中添加依赖
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.22</version> <scope>provided</scope> </dependency>
lombok使用(@Slf4j注解需要额外添加slf4j-api依赖)
-
应用
@Data:自动生成所有属性的get/set方法,equals方法,hashCode方法,toString方法,如果相应的方法名已经存在则滤过该方法
属性名 描述
staticConstructor 静态构造方法名,无参构造函数变为私有,只能通过该静态方法创建对象
@AllArgsConstructor:自动用所有的字段生成构造函数,final的字段是作为生成构造函数入参
属性名 描述
staticName 静态构造方法名,有参构造函数变为私有,只能通过该静态方法创建对象
access 设置生成的构造函数的访问级别,默认public
@Getter:作用在类上,则为所有字段生成get方法;作用在字段上则为该字段生成get方法。
属性名 描述
value 设置生成方法的访问级别,默认public
access 设置生成的构造函数的访问级别,默认public
lazy 是否懒加载,如果为true则要求字段必须是final的,会在调用get方法时才会设置该值,且该值的获取是线程安全的
@Setter:作用在类上,则为所有字段生成set方法;作用在字段上则为该字段生成set方法。
属性名 描述
value 设置生成方法的访问级别,默认public
@ToString注解:作用在类上自动生成toString方法,默认只打印非静态字段,默认会使用字段get方法
属性名 描述
includeFieldNames 是否包含字段名称,默认true
of 打印那些字段,不能和@ToString.Include和@ToString.Exclude注解一起使用
callSuper 是否调用父类的toString方法,默认false
doNotUseGetters 是否不使用字段的get方法
onlyExplicitlyIncluded 仅打印ToString.include注解标注的字段
@ToString.Include:和@ToString注解配合使用,用于自定义打印内容,可以用在方法(方法的返回值将被打印)和字段上
属性名 描述
randk 排序值,优先打印值大的
name 可以自定义被打印字段或方法的名称
@ToString.Exclude:和@ToString注解配合使用,用在字段上,排除不需要打印的字段@EqualsAndHashCode:用在类上,生成equals和hashCode方法,默认会使用字段get方法
属性名 描述
exclude 排除哪些字段
of 包含哪些字段
callSuper 是否要调用父类的实现
doNotUseGetters 是否不使用字段的get方法
onlyExplicitlyIncluded 仅打印ToString.include注解标注的字段
@EqualsAndHashCode.Include:和@ToString注解配合使用,用于自定义内容,可以用在方法(方法的返回值将被打印)和字段上@EqualsAndHashCode.Exclude:和@EqualsAndHashCode注解配合使用,用在字段上,排除不需要打印的字段
@NonNull:用于字段,参数,变量等,在设置null值时,抛出空指针异常
@NoArgsConstructor:生成无参构造函数
属性名 描述
staticName 静态构造方法名,无参构造函数变为私有,只能通过该静态方法创建对象
access 设置生成的构造函数的访问级别,默认public
force 为所有final字段赋初值,0,null,false
@RequiredArgsConstructor:生成包含final和@NonNull注解的成员变量的构造器;
属性名 描述
staticName 静态构造方法名,无参构造函数变为私有,只能通过该静态方法创建对象
access 设置生成的构造函数的访问级别,默认public
@Builder:使用建造者模式,会创建一个LombokBeanBuilder静态内部类,会为LombokBean 添加 public static LombokBeanBuilder builder() 方法。
属性名 描述
builderMethodName 为类添加的返回建造者类的方法名,默认builder()
buildMethodName 建造者类创建目标对象的方法名,默认build()
builderClassName 建造者类的类名
toBuilder 为类创建如下方法 LombokBeanBuilder toBuilder(),会使用当前对象的属性值,作为builder的初值,相当于克隆目标对象
access 设置builder类的访问级别,默认public
@SneakyThrows:可以自动处理编译时异常,避免写try catch@Cleanup:可以自动关闭资源,比如inputSteam
@Slf4j:会创建private static final Logger log;并赋初值,其他的日志也有相应的注解如@Log4j
@Singular:和@Builder注解配合使用,只能用在集合字段或参数上,在builder类中创建为集合创建add方法
@Value:构建一个不可变对象,字段是final的
@With:用在字段和类型上,会为字段生成如下方法,相当于克隆对象的的同时设置指定属性值
参考文献:lombok 详细使用说明_WZTTMoon的博客-CSDN博客_lombok说明