一、简介

Lombok项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。仅五个字符(@Data)就可以替换数百行代码从而产生干净,简洁且易于维护的Java类

二、使用

使用Lombok需要的开发环境Java+Maven+IntelliJ IDEA或者Eclipse(安装Lombok Plugin)

  1. <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
  2. <dependency>
  3. <groupId>org.projectlombok</groupId>
  4. <artifactId>lombok</artifactId>
  5. <version>x.x.xx</version>
  6. <scope>provided</scope>
  7. </dependency>

idea=>setting=>plugins=>Browse repositories=>lombok=>安装
image.png

三、原理

四、常用注解

image.png

1、@Getter、@Setter注解

1>使用对象

类和字段名上。当使用在类上时,该类中的所有属性都会添加上set 和 get
image.png

2>注解参数 AccessLevel

image.png

3>特殊情况

静态的变量:
lombok不会添加set和get方法,因为lombok认定静态变量是属于类级别的,而普通的字段是成员变量。(注意:新版本中似乎做了修改,可以进行添加)
final常量:
lombok不会添加set方法,但是会添加get方法。
image.png

2、@ToString注解

1>使用对象

只能使用在类上
image.png

2>注解参数

exclude : 当类中有某一个字段,不需加入到tostring中 则放入
of : 指定需要输出的 。 在of 中的,一定会输出
image.png

3、@EqualsAndHashCode 注解

image.png

4、@NonNull 、@NoArgsConstructor、@RequiredArgsConstructor、@AllArgsConstructor

@NonNull 也可以标识在字段属性上,方法的参数上也可以。
image.png

@NoArgsConstructor 无参构造函数
@RequiredArgsConstructor 需求构造函数,针对 添加了 @NonNull 和 final 字段的属性,会添加到构造器中
@AllArgsConstructor 全参构造函数

5、@Data、@Builder

@Data 集成了四个注解。get set @RequiredArgsConstructor tostring
@Builder 会创建一个内部类
image.png
image.png