zoukankan      html  css  js  c++  java
  • Lombok的介绍与使用

    Lombok通过简单注解来实现精简代码来达到消除冗长代码的目的。它能够提高编码效率、使代码更简洁、消除冗长代码、避免修改字段名时忘记修改方法名。

    一、Lombok注解

    Lombok主要常用的注解有:

    1. @Data

    注解在类上。在JavaBean或类JavaBean中使用,这个注解包含范围最广,它包含getter、setter、NoArgsConstructor、equals、canEqual、hashCode、toString 注解,即当使用注解时,会自动生成包含的所有方法;

    2. @Setter

    注解在类上。使用此注解会生成对应的setter方法。

    3. Getter

    注解在类上。使用此注解会生成对应的getter方法。

    4. @NoArgsConstructor

    注解在类上。使用此注解会生成对应的无参构造方法。

    5. @AllArgsConstructor

    注解在类上。使用此注解会生成对应的有参构造方法。

    6. @ToString

    注解在类上。使用此注解会自动重写对应的toStirng方法。

    7. @EqualsAndHashCode

    注解在类上。使用此注解会自动重写对应的equals方法和hashCode方法。

    8. @Slf4j

    注解在类上。当项目中使用了slf4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可;

    9. @Log4j

    注解在类上。当项目中使用了log4j打印日志框架时使用该注解,会简化日志的打印流程,只需调用info方法即可。

    ---------------------------------------------------------------------------------------------------

    在使用以上注解需要处理参数时,处理方法如下(以@ToString注解为例,其他注解同@ToString注解):

    @ToString(exclude="column")

    意义:排除column列所对应的元素,即在生成toString方法时不包含column参数;

    @ToString(exclude={"column1","column2"})

    意义:排除多个column列所对应的元素,其中间用英文状态下的逗号进行分割,即在生成toString方法时不包含多个column参数;

    @ToString(of="column")

    意义:只生成包含column列所对应的元素的参数的toString方法,即在生成toString方法时只包含column参数;;

    @ToString(of={"column1","column2"})

    意义:只生成包含多个column列所对应的元素的参数的toString方法,其中间用英文状态下的逗号进行分割,即在生成toString方法时只包含多个column参数;

    ---------------------------------------------------------------------------------------------------

    10. val

    用在局部变量前面,相当于将变量声明为final。

    11. @NonNull

    给方法参数增加这个注解会自动在方法内对该参数进行是否为空的校验,如果为空,则抛出NPE(NullPointerException)

    12. @Cleanup

    自动管理资源,用在局部变量之前,在当前变量范围内即将执行完毕退出之前会自动清理资源,自动生成try-finally这样的代码来关闭流

    13. @Value

    用在类上,是@Data的不可变形式,相当于为属性添加final声明,只提供getter方法,而不提供setter方法

    14. @Builder

    用在类、构造器、方法上,为你提供复杂的builder APIs,让你可以像如下方式一样调用Person.builder().name("Adam Savage").city("San Francisco").job("Mythbusters").job("Unchained Reaction").build();

    15. @SneakyThrows

    自动抛受检异常,而无需显式在方法上使用throws语句

    16. @Synchronized

    用在方法上,将方法声明为同步的,并自动加锁,而锁对象是一个私有的属性$lock或$LOCK,而java中的synchronized关键字锁对象是this,锁在this或者自己的类对象上存在副作用,就是你不能阻止非受控代码去锁this或者类对象,这可能会导致竞争条件或者其它线程错误

    二、使用Lombok

    添加依赖:

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
  • 相关阅读:
    删除目录软链接注意事项
    使用Dnsmasq搭建本地dns服务器上网
    在CentOS 7 上安装广告服务器 Revive Adserver
    CentOS6 Squid代理服务器的安装与配置
    CentOS6 PXE+Kickstart无人值守安装
    Redis的初步安装
    创建交互式shell脚本对话框
    C 捕获 lua 异常错误
    iic 之24C256存储器 及PCF8563
    汉字的编码与字模点阵小结
  • 原文地址:https://www.cnblogs.com/myitnews/p/11853908.html
Copyright © 2011-2022 走看看