在公司的项目中应用了Lombok插件,在idea中需要启用Annotation Processors中的Enable annotation processing选项,之后才能使用Lombok的各个注解
还需要添加依赖
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<scope>provided</scope>
</dependency>
之后就可以熟悉Lombok的各种注解
Lombok的注解有很多
- @Setter
- @Getter
- @Data
- @Log(这是一个泛型注解,具体有很多种形式)
- @AllArgsConstructor
- @NoArgsConstructor
- @EqualsAndHashCode
- @NonNull
- @Cleanup
- @ToString
- @RequiredArgsConstructor
- @Value
- @SneakyThrows
- @Synchronized
@Setter,@Getter,@ToString,@Synchronized,不多赘述,减少了项目中的方法的书写
@NonNull
该注解使用在属性上,该注解用于属的非空检查,当放在setter方法的字段上,将生成一个空检查,如果为空,则抛出NullPointerException
。
该注解会默认是生成一个无参构造。
@EqualsAndHashCode
该注解使用在类上,该注解在类级别注释会同时生成equals
和hashCode
。
注意继承关系的时候该注解的使用。
@Data
该注解使用在类上,该注解是最常用的注解,它结合了@ToString,@EqualsAndHashCode, @Getter和@Setter。本质上使用@Data
注解,类默认@ToString
和@EqualsAndHashCode
以及每个字段都有@Setter
和@getter
。该注解也会生成一个公共构造函数,可以将任何@NonNull
和final
字段作为参数。
@AllArgsConstructor
该注解使用在类上,该注解提供一个全参数的构造方法
@NoArgsConstructor
该注解使用在类上,该注解提供一个无参构造
@RequiredArgsConstructor
该注解使用在类上,使用类中所有带有 @NonNull 注解的或者带有 final 修饰的成员变量生成对应的构造方法
@Value
这个注解用在 类 上,会生成含所有参数的构造方法,get 方法,此外还提供了equals、hashCode、toString 方法。 没有set方法
@Cleanup
该注解使用在属性前,该注解是用来保证分配的资源被释放。在本地变量上使用该注解,任何后续代码都将封装在try/finally中,确保当前作用于中的资源被释放。默认@Cleanup
清理的方法为close
,可以使用value指定不同的方法名称。
@SneakyThrows
该注解使用在方法上,这个注解用在 方法 上,可以将方法中的代码用 try-catch 语句包裹起来,捕获异常并在 catch 中用 Lombok.sneakyThrow(e) 把异常抛出,可以使用 @SneakyThrows(Exception.class) 的形式指定抛出哪种异常