首页 > 其他分享 >lombok注解介绍

lombok注解介绍

时间:2023-06-22 16:22:39浏览次数:43  
标签:构造方法 提供 默认 介绍 注解 lombok 方法 属性

lombok是一个可以帮助我们简化java代码编写的工具类,尤其是简化javabean的编写,即通过采用注解的方式,消除代码中的构造方法,getter/setter等代码,使我们写的类更加简洁,当然,这带来的副作用就是不易阅读…不过,还是能看得懂吧,废话不多说,先看一下lombok支持的一些常见的注解。

(一)引入依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.20</version> <!-- Spring Boot 项目此部分可以不写 -->
</dependency>

(二)注解

@AllArgsConstructor

注解在 类 上;为类提供一个全参的构造方法,加了这个注解后,类中不提供默认构造方法了。

@Cleanup

这个注解用在 变量 前面,可以保证此变量代表的资源会被自动关闭,默认是调用资源的 close() 方法,如果该资源有其它关闭方法,可使用 @Cleanup(“methodName”) 来指定要调用的方法,也会生成默认的构造方法

@Data

注解在 类 上;提供类所有属性的 get 和 set 方法,此外还提供了equals、canEqual、hashCode、toString 方法。

@EqualsAndHashCode

注解在 类 上, 可以生成 equals、canEqual、hashCode 方法。

@Getter

注解在 属性 上;为单个属性提供 get 方法; 注解在 类 上,为该类所有的属性提供 get 方法,都提供默认构造方法。

@NoArgsConstructor

注解在 类 上;为类提供一个无参的构造方法。

@NonNull

注解在 属性 上,会自动产生一个关于此参数的非空检查,如果参数为空,则抛出一个空指针异常,也会有一个默认的无参构造方法。

必须初始化 Not-null 字段 

@RequiredArgsConstructor

这个注解用在 类 上,使用类中所有带有 @NonNull 注解的或者带有 final 修饰的成员变量生成对应的构造方法。

@Setter

注解在 属性 上;为单个属性提供 set 方法; 注解在 类 上,为该类所有的属性提供 set 方法, 都提供默认构造方法。

@Slf4j

注解在 类 上;为类提供一个 属性名为 log 的 log4j 日志对象,提供默认构造方法。

@SneakyThrows

这个注解用在 方法 上,可以将方法中的代码用 try-catch 语句包裹起来,捕获异常并在 catch 中用 Lombok.sneakyThrow(e) 把异常抛出,可以使用 @SneakyThrows(Exception.class) 的形式指定抛出哪种异常,也会生成默认的构造方法。

@Synchronized

这个注解用在 类方法 或者 实例方法 上,效果和 synchronized 关键字相同,区别在于锁对象不同,对于类方法和实例方法,synchronized 关键字的锁对象分别是类的 class 对象和 this 对象,而 @Synchronized 的锁对象分别是 私有静态 final 对象 lock私有 final 对象 lock,当然,也可以自己指定锁对象,此外也提供默认的构造方法。

@ToString

这个注解用在 类 上,可以生成所有参数的 toString 方法,还会生成默认的构造方法。

@Value

这个注解用在 类 上,会生成含所有参数的构造方法,get 方法,此外还提供了equals、hashCode、toString 方法。

 

标签:构造方法,提供,默认,介绍,注解,lombok,方法,属性
From: https://www.cnblogs.com/imreW/p/17497965.html

相关文章

  • 关于实数列上下极限一个定理的注解分析
    Ayumu的数学分析第18课讲到如下一个定理:这个定理没有什么问题.但是随后的注解部分是有问题的,摘录如下:在注解的扩展定义中,E可以涵盖上极限是-∞的情形,但不能涵盖上极限是+∞的情形;同样,F可以涵盖下极限是+∞的情形,但不能涵盖下极限是-∞的情形.具体看几个例子.......
  • SentenceTransformers库介绍
     https://blog.csdn.net/m0_47256162/article/details/129380499SentenceTransformer是一个Python框架,用于句子、文本和图像嵌入Embedding。这个框架计算超过100种语言的句子或文本嵌入。然后,这些嵌入可以进行比较,例如与余弦相似度进行比较,以找到具有相似含义的句子,这对于语......
  • Android开发必备——注解
    前言阅读官方源码以及各类第三方框架时可以发现,很多地方都有注解,作为一名Android程序员,掌握注解属于必不可少的一项技能。1.什么是注解注解是以@符号开头的用来标识如类、字段、方法等的工具。说到注解,就不得不提另外一个概念——注释,两者其实都是做解释的功能,只不过注释是面向开......
  • Java—反射与注解
    ......
  • NoSQL介绍
    NoSQL(NotNolySQL)不仅仅是SQL,泛指非关系型数据库,NoSQL数据库并不是要取代关系型数据库,而是关系型数据库的补充。 优点缺点关系型数据库MySQL、Oracle1、易于维护:都是使用表结构,格式一致;1、存储在硬盘上,所以读写性能比较差2、使用方便:SQL语言通用;2、固定的表......
  • celery笔记五之消息队列的介绍
    本文首发于公众号:Hunter后端原文链接:celery笔记五之消息队列的介绍前面我们介绍过task的处理方式,将task发送到队列queue,然后worker从queue中一个个的获取task进行处理。task的队列queue可以是多个,处理task的worker也可以是多个,worker可以处理任意queue......
  • Apache 地址重写简单介绍
    一、为何需要地址重写网页地址变化,SEO需要更友好的地址,域名变化,等等情况下,为了让客户受尽了少的影响,最好的办法就是地址重写。 二、在那里重写1、在Apache主配置文件httpd.conf中;以我本地XAMPP为例,就是要修改下面配置文件:D:\xampp\apache\conf\httpd.conf;2、在httpd.conf里定义......
  • 机器学习基础-统计学习与数据分析介绍
    本书介绍    本入门级统计教科书主要讲解发展和培养统计思维所需的基本概念和工具。它提供了描述性,归纳性和探索性的统计方法,并指导读者完成定量数据分析的过程。在实验科学和跨学科研究中,数据分析已成为任何科学研究的组成部分。诸如判断数据的可信度,分析数据,评估所获得结果的......
  • 常见开源协议介绍
    搬砖:https://zhuanlan.zhihu.com/p/569905141借用乌克兰程序员PaulBagwell的分析图目录一、BSD协议二、ApacheLicence2.0三、GPL一、BSD协议主要特点:允许修改源码允许源码再发布允许商业软件发布和销售约束:如果再次发布的产品中包含源代码,需要在源代码中必须带......
  • 中文自然语言处理开放任务介绍、数据集、当前最佳结果分享
        本文整理了中文自然语言处理相关开放任务,详细任务说明,数据集,相关评价指标,以及当前最佳结果整理。涉及指代消歧,对话状态管理,情绪分类,实体链接,实体标注(EntityTagging),语言模型,机器翻译,词性标注,问答,关系抽取等任务。    本文内容整理自滴滴NLP实验室Wiki:https://c......