Lombok介绍

559 阅读1分钟

总述

​ Lombok项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码,实现简洁且易于维护的Java类。

​ 官网:projectlombok.org

支持

​ 以IDEA为例,首先在setting --> plugins中搜索 lombok 并安装重启,然后在 pom.xml中添加依赖。

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.8</version>
    <scope>provided</scope>
</dependency>

使用

先写个POJO类。

public class Address {

    private int id;
    private String province;
    private String city;
    private String country;

}

这其中并没有提供构造方法、setter、getter、toString等方法,接下来使用Lombok的几个常用注解。

  • @Getter:用于生成getter方法,可用在类或属性上。
  • @Setter:用于生成setter方法,可用在类或属性上。
  • @AllArgsConstructor:用于生成全参构造器,用在类上。
  • @NoArgsConstructor:用于生成无参构造器,用在类上。
  • @EqualsAndHashCode: 用于生成hashCode和equals方法,用在类上。
  • @Data:是一个复合注解,使用该注解,会生成默认的无参构造器、所有属性的getter、所有非final的属性的setter、canEqual(Object),重写toString方法,重写equals方法,重写hashcode方法。
  • @Builder:用于将类改造成builder模式,用在类、方法或构造器上。

@Getter

getter

@Setter

setter

@AllArgsConstructor

AllArgsConstructor

@NoArgsConstructor

NoArgsConstructor

@EqualsAndHashCode

EqualsAndHashCode

@Data

Data

@Builder

Builder

​ 在Address类上使用@Builder注解后,可以这样创建对象:

Address address = Address.builder().province("广东省")
                .city("广州市")
                .country("华南")
                .build();

参考

<<Java微服务实战>> 赵计刚/著

Lombok百度百科