Lombok:简洁代码、提升编程效率利器

Lombok是一个能够让编程人员没必要硬编set、get、构造以及hash和toString方法的插件,在编译时会自动根据定义的属性生成包含这些相关方法的class文件。编程

经常使用的注解以下:maven

@AllArgsConstructor
做用于类,生成全部属性的代参构造函数ide


@NoArgsConstructor函数

做用于类,生成无参构造函数ui


@toString
做用于类,生成toString方法this


@EqualsAndHashCode
做用于类,生成equals和hashcode方法idea

 

@Setter,@Getter.net

做用于类,为全部属性生成set和get方法,做用于属性,为该属性生成set和get方法;插件

 

下面这三个注解比较厉害了,终极大boss:3d

@Data
做用于类,能够生成上面除了@AllArgsConstructor之外全部的方法。
若想生成全部参数构造,需配合@AllArgsConstructor使用,可是无参构造就会失效,因此须要自定义或搭配@NoArgsConstructor一块儿使用。

须要说明的是:
若自定义了set或get方法,@Setter,@Getter和@Data三个注解使用时是不会覆盖生成set或get方法的

 

@Builder
用于类,生成一个当前类的builder构建器、builder方法和全参构造函数。构建器中的全部方法为当前类的属性名命名,功能涵盖set方法功能,但同时返回构建器对象,还有一个build方法,最终调用生成当前类对象。
Builder方法用于生成构造器对象。

须要注意:
使用该注解会同时生成全参构造函数,因此如需无参构造,须要自定义或配合@NoArgsConstructor一块儿使用


@Accessors(chain = true)
这是一个还在实验阶段或公测阶段的一个功能注解。须要配合@data或@set、@get使用。
可包含三个参数:
fluent:布尔值,默认false,true时生成的set和get方法都会去掉set个get前缀,该值为true时,chain属性默认为true
chain:布尔值,默认false,只有fluent为true时默认true。true时全部set方法返回值有void变成当前对象;
Prefix:前缀属性(不经常使用,没细研究)

 

下来看看实际如何操做

首先是idea安装:

设置激活安装的插件:

 

添加maven依赖:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.4</version>
</dependency>

 

@data使用示例

在右侧structure选项能够看到结果,也能够Ctrl+F12查看结果以下:

 

@builder使用示例:

Ctrl+F12结果以下:

代码使用:

 

@Accessors使用示例:

代码:

是否是跟@builder用法有点类似……

 

日志相关的注解:

@Slf4j(至关于:org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(this.getClass() );)
实例名就是“log”,使用以下:
log.warn(e.getMessage());
log.error(e.getMessage(), e);

还有其余日志相关注解,如:@Log4j / @Log4j2  / @CommonsLog ……

 

至此,lombok辉煌的一辈子就概述结束了,哈哈哈……

相关文章
相关标签/搜索