一、Lombok简介:
Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。官方地址:https://projectlombok.org/,github地址:https://github.com/rzwitserloot/lombok。
二、IntelliJ IDEA 使用它的方法
1.先安装插件
2.然后在pom引入lombok的jar包
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<!-- 版本号,可以更改 -->
<version>1.16.14</version>
</dependency>
3.常用有哪些注解:
- @Setter
- @Getter
- @Data
- @Log4j
- @AllArgsConstructor
- @NoArgsConstructor
- @EqualsAndHashCode
- @NonNull
- @ToString
- @RequiredArgsConstructor
- @Value
- @SneakyThrows
- @Synchronized
- @Builder
三、lombok注解介绍:
1.@Getter and @Setter:
你可以用@Getter / @Setter注释任何字段(当然也可以注释到类上的),让lombok自动生成默认的getter / setter方法。
默认生成的方法是public的,如果要修改方法修饰符可以设置AccessLevel的值,例如:@Getter(access = AccessLevel.PROTECTED)
下面是AccessLevel的部分源码:
public enum AccessLevel {
PUBLIC, MODULE, PROTECTED, PACKAGE, PRIVATE,
/** Represents not generating anything or the complete lack of a method. */
NONE;
}
通过源码我们可以看出,AccessLevel有六个属性值,分别是
PUBLIC, MODULE, PROTECTED, PACKAGE, PRIVATE,和 NONE;
我们可以通过下面的表格理解这其中几个属性值的含义:
访问控制符 当前类 同一包内 子孙类 其它包
让我们看看生成的结果:
Name属性lombok帮我们生成了get,set方法,并且,我们指定了访问修饰符为PRIVATE,可以看到get set方法的权限修饰符为PRIVATE的
2.Data注解:
作用于类上,会帮我们生成所有属性的 get ,set 方法,和equals、canEqual、hashCode、toString 方法。
3.@Log4j
作用于类上,为类提供一个属性名为log的 Log4j对象: