Lombok注解

Lombok(原理,Lombok安装,Lombok注解) 系列文章目录 目录 系列文章目录 文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要.. 阅读详情

Lombok的作用:

        本人认为lombok的作用就是减少编码中的重复编码,简化编码,开发过程中通过注解就可以代替Get()、Set()方法的书写,虽然这两种方法可以一键生成,体现不出编码简化的效果,从log、synchronized等对应的注解来看,简化编码的效果显而易见。在lombok使用时,需要根据具体的业务逻辑进行判断如何使用。

Lombok注解官网地址:

http://jnb.ociweb.com/jnb/jnbJan2010.html#annotations

Lombok API 地址:

https://projectlombok.org/api/overview-summary.html

Lombok插件的安装(IntelliJ IDEA)

参见本人另一篇博客:https://blog.youkuaiyun.com/Soul_Programmer_Swh/article/details/84346408

Lombok注解:
@Setter
@Getter
@Data
@Log(这是一个泛型注解,具体有很多种形式)
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@NonNull
@Cleanup
@ToString
@RequiredArgsConstructor
@Value
@SneakyThrows
@Synchronized
注解详情
log
注解在 类 上。有如下可选择可用:

//@CommonsLog
private static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);
//@JBossLog
private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LogExample.class);
//@Log
private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LogExample.class.getName());
//@Log4j
private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LogExample.class);
//@Log4j2
private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class);
//@Slf4j
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
//@XSlf4j
private static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);

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

该类型注解可以满足不同的日志系统的日志使用,Lombok提供了一些自定义配置项可以参看官方说明文档。

 

@Getter和@Setter
该注解使用在类或者属性上,该注解可以使用在类上也可以使用在属性上。生成的getter遵循布尔属性的约定。例如:boolean类型的sex,getter方法为isSex而不是getSex

在使用该注解时,会默认生成一个无参构造。和对应的getterhe setter方法 


该注解也可以使用在单个属性上,会默认生成一个无参构造: 


@Data
该注解使用在类上,该注解会提供getter、setter、equals、canEqual、hashCode、toString方法。

@NonNull
该注解使用在属性上,该注解用于属的非空检查,当放在setter方法的字段上,将生成一个空检查,如果为空,则抛出NullPointerException。 
该注解会默认是生成一个无参构造。 


@toString
该注解使用在类上,该注解默认生成任何非讲台字段以名称-值的形式输出。 
1、如果需要可以通过注释参数includeFieldNames来控制输出中是否包含的属性名称。 
2、可以通过exclude参数中包含字段名称,可以从生成的方法中排除特定字段。 
3、可以通过callSuper参数控制父类的输出。

includeFieldNames是否包含属性名称: 

exclude 排除指定字段 

callSuper输出父类属性 

注意:父类也要有toString方法,不然打印的是对象内存地址

//父类无toString方法
Person(super=com.motui.Person@3abfe836, firstName=motui, address=北京, dateOfBirth=Tue Jan 09 11:49:05 CST 2018, sex=true)
//父类有toString方法
Person(super=People(id=111), firstName=motui, address=北京, dateOfBirth=Tue Jan 09 11:50:11 CST 2018, sex=true)

@EqualsAndHashCode
该注解使用在类上,该注解在类级别注释会同时生成equals和hashCode。 
注意继承关系的时候该注解的使用。详细介绍参照官方介绍 

存在继承关系需要设置callSuper参数为true。

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

虽然@Data注解非常有用,但是它没有与其他注解相同的控制粒度。@Data提供了一个可以生成静态工厂的单一参数,将staticConstructor参数设置为所需要的名称,Lombok自动生成的构造函数设置为私有,并提供公开的给定名称的静态工厂方法。 


@AllArgsConstructor
该注解使用在类上,该注解提供一个全参数的构造方法,默认不提供无参构造。 


@NoArgsConstructor
该注解使用在类上,该注解提供一个无参构造 


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


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


@Cleanup
该注解使用在属性前,该注解是用来保证分配的资源被释放。在本地变量上使用该注解,任何后续代码都将封装在try/finally中,确保当前作用于中的资源被释放。默认@Cleanup清理的方法为close,可以使用value指定不同的方法名称。 


@Synchronized
该注解使用在类或者实例方法上,Synchronized在一个方法上,使用关键字可能会导致结果和想要的结果不同,因为多线程情况下会出现异常情况。Synchronized 
关键字将在this示例方法情况下锁定当前对象,或者class讲台方法的对象上多锁定。这可能会导致死锁现象。一般情况下建议锁定一个专门用于此目的的独立锁,而不是允许公共对象进行锁定。该注解也是为了达到该目的。 


@SneakyThrows
该注解使用在方法上,这个注解用在 方法 上,可以将方法中的代码用 try-catch 语句包裹起来,捕获异常并在 catch 中用 Lombok.sneakyThrow(e) 把异常抛出,可以使用 @SneakyThrows(Exception.class) 的形式指定抛出哪种异常。该注解需要谨慎使用。详情参看官方介绍 

08. 《Lombok 实战 —— @Log》 文章目录《道空 Lombok 实战 —— @Log》1. @Log 体系简介2. @Log 实战使用3. @Log 注解详解4. @Log 全局配置参考文档 《道空 Lombok 实战 —— @Log》 Captain’s Log, stardate 24435.7: “What was that line again?” 在lombok v0.10中添加了各种@Log变体。 lombok 0... 阅读详情

相关推荐

自定义Lombok注解

Java 是一门"繁琐"的语言,使用Lombok可以显著地减少样板代码。比如使用@Getter注解可以为你的私有属性创建 get 方法。 源代码 @Getter private int age = 10; 生成后代码 private int age = 10; public int getAge() { return age; } Lombok 自身已经拥有许...

weixin_30896825的博客 2087

Dependency ‘org.projectlombok:lombok:1.18.16‘ not found--解决办法IDEA安装插件lombok

3,lombok插件介绍 Lombok项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。仅五个字符(@Data)就可以替换数百行代码从而产生干净,简洁且易于维护的Java类。(百度百科) 用大白话来讲,Lombok可以通过几个注释在编译的时候为我们的JavaBean动态的生成get,set,tostring,无参构造方法,全参数构造方法,基于builder的创建方式。 lombok具体使用步骤: 1,引入lombok对应的maven坐

qq_44966450的博客 2万+

Lombok注解(三)

Lombok注解 @log、@Builder、@SneakyThrows、@Synchronized

wjzh2008的博客 367

笃学私教:Lombok入门使用教程及其优缺点详解

在Java开发中,因工作需要,你可能会学习或被迫去学习Lombok这个工具,这玩意用起来可以说是贼爽,很方便,可玄武老师实际上并不推荐大家使用,至于Lombok是什么?怎么入门?为什么不推荐使用?下面,玄武老师会慢慢跟你讲解。 一、Lombok是什么? 1、官方网站地址:点击直达 2、官网对Lombok的描述如下: Project Lombok is a java library that automatically plugs into your editor and build tools, spic

weixin_46898270的博客 1834

解读区块链在制药和物流管理中具备的优势

供应链透明度是建立药品弹性供应链的关键,如何更好地促进端到端的透明度,促进合作伙伴和消费者之间的信任度是当前医药和物流行业高管们关注的话题,区块链技术可以很好的帮助他们。 链集市 · 让区块链落地更简单 《区块链行业观察》专栏·第 31 篇 作者丨Shams Rahman 图片丨来源于网络 作者介绍:本文作者为Shams Rahman教授,是RMIT大学商业IT和物流学院的供应链管理教授、研究与创新部门副主任。本文中文版本由链集市团队编译整理,英文版权归原作者所有,中文转载请联系编译。 新冠肺炎疫情的爆发

CECBC的博客 623

自动驾驶技术路线之争:纯视觉与多模态融合的成本与性能博弈

本文深入剖析了自动驾驶领域两大主流技术路线——纯视觉与多模态融合的本质差异。文章从成本结构、性能博弈与商业逻辑等多维度展开,揭示了纯视觉方案在硬件成本与数据算力投入上的权衡,以及多模态融合方案在安全冗余与感知稳定性方面的优势。这场技术路线之争,实则是车企在性能、成本与商业化落地之间寻求平衡的综合博弈。

weixin_29038303的博客 390

Lombok:简化Java开发的魔法工具

Lombok是一个强大的Java开发工具,它通过注解的方式为Java类提供了许多实用的功能,从而简化了Java代码的开发过程。总之,Lombok是一个值得尝试的Java开发工具,它可以为我们的开发工作带来许多便利。(通常简称为Lombok)是一个广受欢迎的库,它通过注解的方式为Java类提供了许多实用的功能,从而极大地简化了Java代码的开发过程。Lombok的这些功能极大地减少了Java开发中的样板代码,使得开发者可以更加专注于业务逻辑的实现。在Java开发领域,

wddblog的博客 1349

高通引导文件获取全攻略:ELF/MBN提取与EDL救砖实战

在智能手机底层维护中,引导加载程序(Bootloader)是系统启动的第一道关卡。高通平台通过PBL、SBL1/XBL等阶段完成硬件初始化和安全校验,一旦引导分区损坏,设备便可能陷入黑砖状态。此时,掌握ELF与MBN格式的引导镜像获取方法,成为维修工程师和刷机用户的核心技能。通过官方固件包解包或借助EDL模式直接从设备分区备份,均能获得原厂匹配的引导文件。配合Firehose工具和9008端口通信,即可实现分区级读写与救砖恢复。本文从启动链路原理出发,对比两种获取路径的适用场景,并针对驱动识别、文件校验、分

weixin_30175731的博客 414

Lombok常用注解

简介 Lombok是一个通过注解以达到减少代码的Java工具,如通过注解的方式减少get,set方法,构造方法等。 在集成开发工具中使用lombok,首先需要先安装插件: Lombok对应的Maven信息: <dependency> <groupId>org.projectlombok</groupId> <artifactId&gt...

哈 1万+

基于PyTorch的BP神经网络PID控制器动态调参实战

本文详细介绍了基于PyTorch的BP神经网络PID控制器动态调参实战,结合BP神经网络的自适应能力和PID控制算法的经典优势,实现工业控制中的高效参数调整。通过PyTorch实现BP-PID融合架构,包括网络设计、损失函数优化及动态调参技巧,显著提升控制性能,适用于温度控制、电机控制等场景。

weixin_29094775的博客 520

LabVIEW vs Python:谁更适合你的ATE自动化测试系统?实测对比与选型建议

本文深入对比了LabVIEW和Python在ATE自动化测试系统中的性能表现、开发效率和应用场景,帮助工程师根据实时控制需求、数据处理复杂度及团队技能做出最优选型决策。通过实测数据和典型案例,分析两者在硬件集成、系统性能和维护成本等方面的差异,并提供混合架构实施建议。

weixin_29240711的博客 275

Lombok及注解

在Java中,封装是一个非常好的机制,最常见的封装莫过于get,set方法了,在Intellij idea中提供了快速生成get和set方法的快捷键(鼠标右键,选择generate),其实,我们还有更方便的办法,就是今天的主角-Lombok。Lombok是一个通过注解以达到减少代码的Java库,如通过注解的方式减少get,set方法,构造方法等。

qq_43641640的博客 1363

软件工程实验报告--用Visio绘制数据流图、ER图、状态图、软件结构图、程序流程图、系统流程图

用Visio绘制数据流图、ER图、状态图、软件结构图、程序流程图、系统流程图

m0_73814332的博客 4160

Lombok 常用注解

Lombok 是一个 Java 库,它通过注解的方式帮助开发者减少样板代码(boilerplate code)的编写。通过使用 Lombok,开发者可以简化 getter、setter、构造函数等方法的编写,从而提高开发效率。Lombok 通过注解的方式极大地简化了 Java 代码的编写,特别是对于 getter、setter、构造函数等样板代码的生成。通过使用@Getter@Setter@ToString@Data@Builder等注解,开发者可以显著提高开发效率,减少代码冗余。

xycxycooo的博客 917

NVIDIA GPU任务调度全景:从Block分配到Warp发射

GPU并行计算的核心是任务调度,而CUDA kernel在GPU上的执行并非简单的一次性操作,而是经过从CPU命令队列到硬件前端,再到GigaThread引擎和Warp Scheduler的多层协同。理解这一过程,是性能优化的基础。Warp作为硬件调度的基本单位,其状态切换与延迟隐藏能力直接决定计算单元的利用率;而Occupancy作为衡量SM上活跃Warp池大小的指标,也并非越高越好,需要结合访存模式与资源占用综合判断。对于多任务并发场景,Stream优先级、计算抢占、MIG硬件隔离与MPS软件共享等机制

weixin_32612263的博客 267

CXL协议-第三章 CXL事务层

CXL.io为I/O设备提供了一个非一致的负载/存储接口。图3-1显示了Flex总线分层层次结构中的位置。事务类型、事务分组格式、基于信用的流量控制、虚拟通道管理和事务排序规则遵循PCIe*定义,详情请参考PCIe基础规范的“事务层规范”章节。本章重点介绍了用于CXL.io的著名的PCIe操作模式或特性。

qq_41305217的博客 2769

lombok 注解

Data 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法@Setter :注解在属性上;为属性提供 setting 方法@Setter :注解在属性上;为属性提供 getting 方法@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象@NoArgsConstructor :注解在类上;为类提供一个无参的构造方法。

刘皇叔说Java的博客 1271

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

lombok @Builder注解

lombok @Builder注解 作用 @Builder public class Card { private int id; private String name; private boolean sex; } 使用: Card card = Card.builder().id(10).name("dasd").sex(true).build(); 优点 不需...

李余通的博客 3万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Lombok注解详解

Getter Setter ToString EqualsAndHashCode Data Value NonNull NoArgsConstructor AllArgsConstructor RequiredArgsConstructor Builder Synchronized Cleanup Singular Generated SneakyThrows val var CommonsLog Flogger Log JBossLog Log4j Log4j2 Slf4j

骑个小蜗牛的博客 5219

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

lombok注解总结

Lombok 一、日志注解 1.1 @CommonsLog log.info(obj) 可以直接输出对象 private static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LogExample.class); 1.2 @JBossLog private...

Warren Blog 2105

lombok的注解

lombok 注解

AsparagusW 1810

Lombok注解使用和Lombok原理

lombok注解/常用注解/lombok原理介绍

hbbtap的博客 896

lombok 基础注解之 @RequiredArgsConstructor

最全的 lombok 注解详情(随着版本不定时更新) 一、注解介绍 作用于类,用于生成包含 final 和 @NonNull 注解的成员变量的构造方法 二、属性介绍 staticName:使生成的构造方法是私有的 并且生成一个参数为 final 变量和 @NonNull 注解变量,返回类型为当前对象的静态方法,方法名为 staticName 值 access:设置构造方法的访问修饰符,如果设置了 staticName,那么将设置静态工厂方法的访问修饰符的静态工厂方法 共有 PUBLIC、MODULE、PR

用善良的眼光看世界 2万+
上一篇: MyBatis 配置
下一篇: RocketMQ 发送/接受消息
Walter Sun
博客等级 码龄9年 1726粉丝 288原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Walter Sun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值