Java之Lombok库的使用和讲解

举报
哥的时代 发表于 2023/12/24 22:31:06 2023/12/24
【摘要】 前言Lombok是一个==Java库==,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或eques方法,同时可以自动化日志变量。在项目中使用Lombok可以减少很多重复代码的书写。比如说getter/setter/toString等方法的编写。lombok官网:https://projectlombok.org/ 一、IDEA中lombok的...

前言

Lombok是一个==Java库==,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或eques方法,同时可以自动化日志变量。

在项目中使用Lombok可以减少很多重复代码的书写。比如说getter/setter/toString等方法的编写。

lombok官网:https://projectlombok.org/


一、IDEA中lombok的配置

点击File->Settings->plugins->搜索lombok并安装该插件
image.png

方法一:

jar包下载路径:https://projectlombok.org/download

下载jar包后导入项目中。

方法二:

maven配置

maven官方网站:Maven Repository: org.projectlombok » lombok (mvnrepository.com)
image.png

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.26</version>
      <scope>provided</scope>
    </dependency>

二、lombok的使用

Lombok有哪些注解
@Setter
@Getter
@Data
@Log(这是一个泛型注解,具体有很多种形式)
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@NonNull
@Cleanup
@ToString
@RequiredArgsConstructor
@Value
@SneakyThrows
@Synchronized
@Accessors
@Slf4j

  • 1、@setter:在JavaBean中使用,注解会生成对应的setter方法

  • 2、@getter:在JavaBean中使用,注解会生成对应的getter方法

  • 3、@Data:在JavaBean中使用,注解包含包含getter、setter、NoArgsConstructor注解

    • @Value注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法
  • 4、@Log4j:在需要打印日志的类中使用,项目中使用log4j日志框架

  • 5、@AllArgsConstructor:在JavaBean中使用,注解会生成对应的有参构造方法

    • @RequiredArgsConstructor :生成private构造方法,使用staticName选项生成指定名称的static方法。
  • 6、@NoArgsConstructor:在JavaBean中使用,注解会生成对应的无参构造方法

  • 7、@EqualsAndHashCode:在JavaBean中使用,注解会自动重写对应的equals方法和hashCode方法

  • 8、@NonNull:注解快速判断是否为空,为空抛出java.lang.NullPointerException

  • 9、@Cleanup:注解用于确保已分配的资源被释放(IO的连接关闭)

  • 10、@ToString:在JavaBean中使用,注解会自动重写对应的toStirng方法

    • @ToString(exclude={“column1”,“column2”}):排除多个column列所对应的元素

    • @ToString(of={“column1”,“column2”}):只生成包含多个column列所对应的元素

  • 11、@RequiredArgsConstructor : 生成一个包含 “特定参数” 的构造器,特定参数指的是那些有加上 final 修饰词的变量们

    • 补充一下,如果所有的变量都是正常的,都没有用 final 修饰的话,那就会生成一个没有参数的构造器
  • 12、@Value:

    • 属性:

      • staticConstructor:使生成的构造方法私有化
        并且生成一个返回类型为当前对象的无参静态方法,方法名为 staticConstructor 值
  • 13、SneakyThrows:编写代码出现异常时,如果我们不想(或不能)在抛出异常的地方直接处理时可以使用该注解。

  • 14、@Synchronized:注解自动添加到同步机制,生成的代码并不是直接锁方法,而是锁代码块, 作用范围是方法上

  • 15、@Accessors(chain = true):链式风格,在调用set方法时,返回这个类的实例对象

  • 16、@Slf4j:在需要打印日志的类中使用,项目中使用slf4j日志框架

在日常开发中我们常用到的是@Data、@AllArgsConstructor、@NoArgsConstructor

不加注解时:
image.png

加上@Data注解时:
image.png

加上@AllArgsConstructor注解时:(多了有参构造)
image.png

加上@NoArgsConstructor注解时:(多了无参构造)

==这个在开发中是一种比较偷懒的用法(初学者不需要掌握)。==


总结

以上就是Java之Lombok库的使用和讲解的相关知识,希望对你有所帮助
积跬步以至千里,积怠惰以至深渊。时代在这跟着你一起努力哦!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。