Lombok消除Java冗长

Wu Jun 2019-12-25 15:59:03
Categories: > Tags:

官方网址github地址

简介

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指定不同的方法名称。