前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Lombok使用

Lombok使用

作者头像
SuperHeroes
发布2019-03-12 14:54:38
8660
发布2019-03-12 14:54:38
举报
文章被收录于专栏:云霄雨霁

1  介绍

Lombok是一个简单的Java库,该工具可以通过注解自动地提供一些方法,简化开发。比如编写POJO时需要为每个属性提供getter()方法和setter()方法,这就可以使用Lombok实现。

2  配置

Lombok只是一个小工具,要使用它非常简单,如果使用的是IDEA的话可以直接在IDE中下载安装插件,然后在项目中依赖即可。

安装Lombok插件:

引用依赖:

代码语言:javascript
复制
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.2</version>
    <scope>provided</scope>
</dependency>

3  使用方法

Lombok使用注解提供功能,有14个注解,在对应的类、方法或者属性上使用对应的注解即可。

Lombok的最大的优点就是不用编写大量的版式代码,比如我们项目中有许多POJO,那么为每个pojo编写getter()、setter()、toString()方法是非常枯燥的事情,虽然可以使用IDE自带的代码生成工具来生成这些方法,但还是不够简便。

Lombok工具提供更加强大的功能,你在需要什么方法时,只需要添加注解即可。而且提供的方法补全比IDE自带的要多一些。

3.1  @Setter

该注解可以注解类,也可以注解属性。

注解类时会为类中的每个属性默认生成setXxx(Xxx xxx)方法;注解属性时为这个属性生成setXxx(Xxx xxx)方法。

3.2  @Getter

该注解和@Setter类似,可以注解类,也可以注解属性。

注解类时会为类中的每个属性默认生成getXxx()方法;注解属性时为这个属性生成getXxx()方法。这不是绝对的,如果属性是布尔类型,那么生成的方法是isXxx()而不是getXxx()。

3.3  @Log

日志注解,注解在类上。可以使用日志注释对任何类进行注释,以使lombok生成记录器字段。而且@Log有许多变体:

@CommonsLog  @Flogger  @JBossLog  @Log  @Log4j  @Log4j2  @Slf4j  @XSlf4j

默认情况下,记录器的主题(或名称)将是使用@Log注释注释的类的类名。可以通过指定topic参数来自定义。例如: @Log4j(topic="hello")。

3.4  @AllArgsConstructor

该注解用在类上,自动为该类提供一个全参构造函数。注意:默认不提供无参构造。

3.5  @NoArgsConstructor

该注解用在类上,自动为该类提供一个无参构造函数。

3.6  @EqualsAndHashCode

该注解用在类上,自动为该类提供Equals()方法和HashCode()方法。比如,如果对象需要放进HashMap,我们可以简单的为它的类添加这个标签即可。

3.7  @NonNull

注解在属性上或者方法的入参上,用于属性非空检查。

如果注解在方法的入参上,会在方法体中生成一个null检查(if语句),如果为空,抛出NullPointerException异常。

3.8  @CleanUp

注解在属性上,保证为该属性分配的资源被释放。比如输入输出流就可以添加该注解。

如果在局部变量上添加该注解,那么后续代码都将自动被try/catch块包裹,以保证资源得到释放。

3.9  @ToString

注解在类上,为该类自动生成toString()方法。默认将所有非静态变量以key-value形式输出。但该注解提供三个属性可供配置:

  • includeFieldNames:是否包含属性名称。默认为true,如果设置为false则只是将属性的值以Set的形式输出。
  • exclude:排除指定字段
  • callSuper:输出父类属性。注意:父类也要使用该注解或者提供有toString()方法,否则输出的是父类的内存地址。

3.10  @RequiredArgsConstructor

该注解使用在上,为该类生成一个构造方法--参数是该类中所有被@NonNull注解的变量或者被final修饰的变量。

3.11  @Value

这个注解使用在上,会生成含所有属性的构造方法,所有属性的getter() 方法、equals()方法、hashCode()方法、toString() 方法。  注意:没有setter()方法

3.12  @Data

注解在类上,该注解是最常用的注解,它结合了@ToString,@EqualsAndHashCode, @Getter和@Setter。本质上使用@Data注解,类默认有@ToString和@EqualsAndHashCode以及每个字段都有@Setter和@Getter。该注解也会生成一个公共构造函数,以所有@NonNull和final的属性作为参数。

3.13  @SneakyThrows

@#¥%……&*     这是个什么东东?没用过。

3.14  @Synchronized

@#¥%……&*     这是个什么东东?没用过。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/08/18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1  介绍
  • 2  配置
    • 安装Lombok插件:
      • 引用依赖:
        • 3.1  @Setter
        • 3.2  @Getter
        • 3.3  @Log
        • 3.4  @AllArgsConstructor
        • 3.5  @NoArgsConstructor
        • 3.6  @EqualsAndHashCode
        • 3.7  @NonNull
        • 3.8  @CleanUp
        • 3.9  @ToString
        • 3.10  @RequiredArgsConstructor
        • 3.11  @Value
        • 3.12  @Data
        • 3.13  @SneakyThrows
        • 3.14  @Synchronized
    • 3  使用方法
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档