Lombok的利与弊

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

使用Lombok

整体定位

没有太多技术上的东西,主要就是减少代码。或者说,将以前写的常用且重复的代码用注解的形式“简写“一下。如给属性添加Setter,Getter方法,无参构造方法,全参构造方法,hashCode(),equals()方法,toString()等等。

import

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.12</version>
</dependency>

常用注解

Lombok features
最常用的有:@Data,@Setter,@Getter,@NoArgsConstructor。
其作用不再赘述了,直接看上面官网文档就知道了。

其他好用的注解

  • @Slf4j

作用在类上,可以直接取代:

private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(XXX.class);
  • @Builder

自动生成建造者模式的方法。

缺点

这位老哥总结的很详细:作为一名资深后端开发,为什么从不推荐别人使用Lombok,谈谈我的看法…
总结一下,有以下几点:

  • 侵入性太强
    因为Lombok注解如@Getter(),IDE在代码提示阶段就会报错:stu.getName()找不到该方法,需要下载相应的插件才可以消除错误提示。
    在多人协作开发过程中,如果有一个人使用lombok开发,那么其他人必然也需要装,不然整个项目编译不能成功。
  • 代码跟踪不友好
    因为用注解的形式省去了Setter,Getter等方法,在代码跟踪时(如查看Setter的所有调用位置)就会”断链“。
  • 版本兼容问题
    私以为这个问题不是那么严重。
    1)和Java的兼容性问题由Java本身的向后兼容性保证。
    2)团队队员之间的lombok应该由父POM统一管理,而不是各个队员自己指定。)
    3)和第三方依赖中的lombok版本冲突问题,属于项目”依赖冲突“的范畴,和任何其他jar包的依赖冲突一样,应该仔细进行依赖审查,exclude掉子依赖的lombok
  • 封装性问题
    即使对于private属性,@Data or @Setter注解会生成public的Setter,其实这个问题也不算是问题,看到网上老哥已经给出解决方案
@Setter(AccessLevel.PROTECTED)

即这样生成了private级别的Setter方法,即维持了封装性。

  • 不懂误用的问题
    如,不知道@Data是以下三个注解的合成:
    在这里插入图片描述
    来源:lombok的Data注解
    PS:
    1)关于lombok关于构造器的注解,这篇写的挺好《Lombok 实战 —— @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor》)
    2)其实具体的lombok的作用,大家可以去看编译之后的.class,对比原来的.java就明白到底什么作用了
    回到”不懂误用“的问题,如果使用者不知道Data覆写了hashCode()方法,同时又使用了Set/Map等,就有可能造成严重的后果。

到底用还是不用

知道发生了什么,小而独立的业务项目使用

以上弊端分析可以看到,最大的弊端:

  • 不懂注解给类带来了哪些改变,或者说只注意到增加了Setter/Getter/Constructor
  • 侵入性太强,绑架队友
  • 代码跟踪困难

仔细分析下来,不是不可以用。最重要的一点:不要因为使用一个偷懒工具造成bug,在了解注解给代码带来了什么改变的前提下,小团队(特别个人独立开发项目)是可以用的。

大项目,基础的工具包不要用

如果是大项目,协同的人太多,不合适。
同样地,向外提供的工具包同样不要依赖lombok,虽然在之前的分析中,认为依赖冲突是客户端自己应该解决的问题,但是能不造成麻烦就不要造成,谁也不能保证他们就能正确排包。

实用性的建议

在最简单的Java Bean上使用@Data
在实际使用中,@Data应该是使用最广泛的注解,它的确也带来了很大的便利。如果非要使用的话,建议把它用在最简单的Java Bean上。
1)这个bean的private属性对封装性没有那么高要求(生成public Setter也没事)
2)这个bean对象不会作为Set,Map参数(泛型)传入(因为hashCode()已经被重写,很危险)

Lombok深入——Lombok开发文档教程 Lombok初步介绍 Lombok能干什么 Lombok要如何使用 Lombok Lombok Lombok 注解概览表 注解 注解范围 作用 注意事项 @Data 类 提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法 @EqualsAndHashCode @ToString 类 为类重写 toString 方法 @Getter 类,属性 为属性提供 getting 方法 阅读详情

相关推荐

2024最新指南:如何用Python批量下载Sentinel-2数据(附避坑清单)

本文提供2024年最新Python批量下载Sentinel-2遥感数据的完整指南,涵盖环境配置、API准备、核心下载流程实现及实战避坑清单。通过智能查询器、断点续传下载器等实用工具,帮助用户高效获取遥感数据,避免常见网络问题和数据完整性验证失败。

silver的专栏 618

为什么不推荐使用Lombok

Lombok优点: 代码简洁,减少冗余代码。 Lombok缺点: 1、侵入性太强。如果团队中有一个人使用lombok,团队中其他人都必须安装IDE插件; 2、代码可读性、调试性低。比如使用了lombok,想要看某个属性被哪些类调用,会很不方便; 3、坑 4、影响jdk升级。如果项目中用到的多个jar包使用了不同的lombok版本,就需要进行版本仲裁; 5、 ...

xinguang0729的博客 7175

小米手机安装Burp证书失败原因与DER格式改造指南

CA证书是HTTPS抓包和移动安全测试的基础组件,其本质是遵循X.509标准的数字凭证,依赖ASN.1/DER编码格式与完整证书链实现可信验证。Android系统默认支持PEM和DER两种编码,但MIUI自14版本起强化安全策略,仅识别DER二进制格式,并强制校验Subject Alternative Name(SAN)、Basic Constraints及证书链完整性。这种企业级加固逻辑导致Burp Suite导出的PEM格式.cer文件在小米设备上‘安装成功但无效’。本文聚焦证书格式转换、SAN字段注入

weixin_33646989的博客 625

Lombok优缺点和总结

Lombok优点Lombok缺点Lombok总结

handsome博客 3899

从平衡车到寻迹小车:IMU963RA九轴陀螺仪实战避坑与四元数融合指南

本文详细解析了IMU963RA九轴陀螺仪在机器人姿态控制中的应用,重点探讨了从六轴升级到九轴系统的技术路径及四元数融合算法。通过实战案例,揭示了如何利用地磁计补偿陀螺积分漂移,并提供硬件集成、传感器校准及算法实现的完整解决方案,有效将8小时漂移控制在2度以内。

weixin_27219587的博客 253

一文读懂资管系统里的“清算路径”:钱和券的“导航地图”

简单来说,清算路径就是给每一笔交易预设好的“导航路线”。钱从哪个银行账户出?通过哪家证券公司去买?用哪个股东账户去登记?买回来的股票记在谁的名下?“清算路径”就是把这一连串问题的答案提前配置好。它连接了银行托管户(钱的源头)、券商(交易的中介)和交易所(买卖的市场)。没有配好这条路,交易就无法闭环。清算路径是金融基础设施的缩影。资金如何安全地从银行流向市场;资产如何合法地归属到产品名下;交易数据如何在不同系统间流转。它是资管系统能够日复一日、准确无误地处理亿万级交易的基石。

m0_37607945的博客 235

lombok总结与适用性

目录 1、lombok介绍 2、lombok使用方法 2.1 @Data 2.2 @Getter/@Setter 2.3 @NonNull 2.4 @Cleanup 3、Lombok的优缺点 4、总结 1、lombok介绍 官方介绍如下: Project Lombok makes java a spicier language by adding 'handlers' th...

水逆呱的博客 507

海德汉机床采集数据

海德汉数控系统我一般在高端机床上见得比较多。有好多五轴加工精度比较高的机床都用的是海德汉的系统。市面上常见的有530和640等型号。海德汉的采集还是有点难度的,需要对SDK有深度的了解。

若云流风的专栏 1526

lombok的优缺点

Lombok的使用方法在不同的IDE中略有不同。在IntelliJ IDEA中,需要在pom.xml文件中添加Lombok依赖,然后在IDE中安装Lombok插件。在Eclipse中,需要下载Lombok Jar包,并在项目中添加Lombok Jar包。Lombok是一个Java库,它可以通过注解来自动生成Java代码,减少了开发人员的重复性工作,如getter和setter方法、构造函数、equals方法、toString方法等。使用Lombok可以使Java代码更简洁、更易于维护。

Flying_Fish_roe的博客 810

Freeswitch DTMF 按键无法接收问题修复

freeswitch 在接收到 update后,会更新成新的 payload type,但是给的200响应,仍然是旧的,这时候就会导致手机侧认识需要发送旧的payload,所以发到 fs 后就会导致直接丢包,不去处理RTP包了。呼叫时需要设置通道变量 rtp_manual_rtp_bugs=ACCEPT_ANY_PAYLOAD ,这时候FS 就不会对包的payload进行判断,直接判定通过。应该修复 freeswitch 给响应时,应该根据收到的 payload 发送给手机,但是一直未找到正确的路径。

2301_81507069的博客 373

基于Xilinx XDMA 的PCIE通信

基于Xilinx XDMA 的PCIE通信 概述:   想实现基于FPGA的PCIe通信,查阅互联网各种转载…基本都是对PCIe的描述,所以想写一下基于XDMA的PCIe通信的实现(PCIe结构仅做简单的描述(笔记),了解详细结构移至互联网)。实践实践!!! 说明: 参考文档: PCI Express Base Specification Revision 3.0 PCI Express Base Specification Revision 5.0 pg195-pcie-dma PCI Express体系

Crazzy_M的博客 1万+

Lombok简介、使用、工作原理、优缺点

Lombok简介、使用、工作原理、优缺点 及 在 idea 中的使用方法

YHLSunshine的博客 1490

三臂杆大型液压机械臂集中式ADRC控制系统设计

本文设计了一种用于三臂杆液压机械臂的集中式自抗扰控制(ADRC)系统。该系统通过建立包含惯性矩阵、科氏力、重力及摩擦力的非线性动力学模型,并集成液压系统传递函数,构建了完整的系统模型。控制方案采用跟踪微分器安排过渡过程,扩张状态观测器实时估计系统状态和总扰动,以及非线性状态误差反馈生成控制量。MATLAB实现展示了集中式ADRC控制器的核心结构,包括参数定义、跟踪微分器、扩张状态观测器和非线性反馈模块的设计。该系统能有效处理多关节耦合效应,实现三输入三输出的MIMO控制,具有抗干扰能力强、响应速度快的特点。

huanghm88的专栏 269

Lombok利与弊

Lombok有什么好处? Lombok是一款非常实用Java工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象(POJO)。它通过注释实现这一目的。 如果大家对于Lombok比较了解的话,可以先跳过这一段,直接往后看,如果不是很熟悉的话,可以简单了解一下。 想在项目中使用Lombok,需要三个步骤: 一、IDE中安装Lombok插件 目前Lombok支持多种IDE...

Kimi的博客 1491

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

为什么要放弃 Lombok ?

公众号关注“五分钟学Java”设为 “星标”,每天带你学Java!作者 :ramostear来源 :http://suo.im/5DZBh3如果您正在阅读此文,想必您对 Project...

程序员吴师兄的博客 241

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

别让Lombok成为你代码“亚健康”状态的帮凶

如果您正在阅读此文,想必您对Project Lombok已经有了一段时间的了解。您是否正准备拥抱Lombok?还是正准备将如此酷炫的项目推荐给你的团队?如果您准备那么做,不妨听听我在使用Lombok一年后的一些感受。 我承认,Lombok是一个很不错的Java库,它可以让你在少写代码的同时耍耍酷,简单的几个注解,就可以干掉一大片模板代码。但是,所有的源代码很多时候是用来阅读的,只有很少的时间...

树下魅狐 1808

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

再见,Lombok,没想到你才是让我们代码处于了“亚健康”状态的真正元凶!

如果您正在阅读此文,想必您对Project Lombok已经有了一段时间的了解。您是否正准备拥抱Lombok?还是正准备将如此酷炫的项目推荐给你的团队?如果您准备那么做,不妨听听我在使用Lombok一年后的一些感受。 我承认,Lombok是一个很不错的Java库,它可以让你在少写代码的同时耍耍酷,简单的几个注解,就可以干掉一大片模板代码。但是,所有的源代码很多时候是用来阅读的,只有很少的时间是用来执行的(你可以细品这句话)。 一年以前,我和大多数人都认为Lombok的出现会让Java的编码体验会更好,并极力

liangwenrong的博客 316

再见!Lombok ...

来源 :http://39sd.cn/ED314如果您正在阅读此文,想必您对Project Lombok已经有了一段时间的了解。您是否正准备拥抱Lombok?还是正准备将如此酷炫的项目推...

码农code之路 249

lombok依赖_新来个技术总监,禁止我们使用Lombok

我有个学弟,在一家小型互联网公司做 Java 后端开发,最近他们公司新来了一个技术总监。图片来自 Pexels这位技术总监对技术细节很看重,一来公司之后就推出了很多"政策",比如定义了很多开发规范、日志规范、甚至是要求大家统一使用某一款 IDE。但是这些都不是我这个学弟和我吐槽的点,他真正和我吐槽的是,他很不能理解,这位新来的技术总监竟然禁止公司内部所有开发使用 Lombok。但是又没给出十分明确...

weixin_39979167的博客 221

关于Lombok

Lombok是一款Java语言的工具库,可以通过注解的方式简化Java代码的编写,减少重复代码的出现。简化Java代码:Lombok能够通过注解的方式为Java类自动生成Getter、Setter、Constructor等方法,从而简化了Java代码的编写,减少了代码的冗余。降低了代码可移植性:由于Lombok生成的代码与平台相关,因此可能会降低代码的可移植性。提高代码的可读性:使用Lombok可以让Java代码更加简洁明了,减少了冗余代码和样板代码的出现,从而提高了代码的可读性和可维护性。

m0_74117571的博客 331

LomBok在idea的安装以及lombok使用简介

LomBok在idea的安装以及lombok使用简介 和其他语言相比, Java经常因为不必要的冗长被批评。 Lombok提供了一系列注解用以在后台生成模板代码,将其从你的类中删除,从而有助于保持你的代码整洁。较少的模板意味着更简洁的代码,更易于阅读和维护。在本文中,我将涉及我经常使用的 Lombok功能,并想你展示如何使用他们生产更清晰、更简洁的代码。 1.LomBok插件在idea的安装 ...

QR 5899

lombok依赖 和 lombok插件

lombok依赖 和 lombok插件

bitcsljl的博客 1629

Lombok安装及Spring Boot集成Lombok

Lombok有什么用?在我们实体Bean中有大量的Getter/Setter方法以及toString, hashCode等可能不会用到,但是某些时候仍然需要复写;在使用Lombok之后,将由其来自动帮你实现代码生成。注意,其是在编译源码过程中,帮你自动生成的。就是说,将极大减少你的代码总量。

逆天子陆离的博客 5346

lombok

在 Java 中,如果你定义了任何带参构造函数,编译器就不会再自动提供默认的无参构造函数。在某些情况下(例如在与某些框架合作使用时,如 JPA),即使已经有带参构造函数,我们仍然需要一个无参构造函数,这时。通过以上步骤,您就可以在 Spring Boot 项目中使用 Lombok,以减少样板代码,提高开发效率。根据您的构建工具(Maven 或 Gradle),在您的项目中添加 Lombok 依赖。的使用和特性,可以更方便地管理对象的创建过程,特别是在使用某些要求无参构造的框架时。类生成一个无参构造函数。

- 1684
上一篇: Linux基础(二)—— 如何查看Linux命令
下一篇: tar -zxvf是什么意思
ProLayman
博客等级 码龄10年 105粉丝 192原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值