简介
Lombok采取注解声明方法,注解后经编译,会自动生成注解声明的方法,减少很多重复代码的书写。比如说getter/setter/toString等方法。
安装
添加依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
<scope>provided</scope>
</dependency>
安装插件
为让IDE解读注解方法不报错,需要下载支持插件。
以 idea 为例:打开IDEA的Setting –> 选择Plugins选项 –> 选择Browse repositories –> 搜索lombok –> 点击安装 –> 安装完成重启IDEA –> 安装成功
使用
常用注解:
@log
注解在类上。可选用@CommonsLog、@JBossLog、@Log、@Log4j、@Log4j2、@Slf4j、@XSlf4j,使用时直接调用 log 即可
@Getter和@Setter
注解在类或属性上。会默认生成一个无参构造。
@NonNull
注解在属性上,用于非空检查。如果为空,则抛出NullPointerException。
@EqualsAndHashCode
注解在类上,同时生成equals和hashCode。存在继承关系时需要设置callSuper参数为true。
@Data
注解在类上。包含了@ToString,@EqualsAndHashCode, @Getter,@Setter和@NoArgsConstructor。
同时使用@Data 和 @AllArgsConstructor 后 ,默认的无参构造函数失效,如果需要它,要重新设置 @NoArgsConstructor
@AllArgsConstructor
注解在类上,提供一个全参数的构造方法,默认不提供无参构造
@NoArgsConstructor
注解在类上,提供一个无参构造
@Value
注解在类上,包含了@ToString,@EqualsAndHashCode, @Getter,@AllArgsConstructor。没有@Setter。
@Cleanup
注解在属性前,用来保证分配的资源被释放。
在本地变量上使用该注解,任何后续代码都将封装在try/finally中,确保当前作用于中的资源被释放。默认@Cleanup清理的方法为close,可以使用value指定不同的方法名称。