Lombok的利弊
1.介绍
Lombok是一个可以大量减少代码的工具,
通过Pluggable Annotation Processing API的方式解析注解,
在编译期为class文件注入getter,setter,
以及toString等等诸如此类的代码。
Lombok通过为Java代码添加一些"处理程序",
让代码变得更简洁、更优雅。
2.好处
Lombok最大的好处就在于通过注解的形式来简化Java代码。
减少大量的模板代码,一定程度提高代码可读性,可以专注于查看类的属性。
3.坏处
3.1 额外的环境配置
作为IDE插件+jar包,需要对IDE进行一系列的配置。
目前在IDEA中配置还算简单,在Eclipse下配置会复杂不少。
并且无法很好的配合Maven Groovy等。
JDK和IDE升级后,Lombok能否有足够的人力和资源继续支持。
3.2 传染性
一般来说,对外打的jar包最好尽可能地减少三方包依赖,
这样可以加快编译速度,也能减少版本冲突。
一旦在resource包里用了lombok,别人想看源码也不得不装插件。
3.3 降低代码可读性
定位方法调用时,对于自动生成的代码,getter/setter还好说,
找到成员变量后find usages,再根据上下文区分是哪种;
equals()这种,想找就只能写段测试代码再去find usages了。
目前主流IDE基本都支持自动生成getter/setter代码,
和Lombok注解相比不过一次键入还是一次快捷键的区别,
而且Lombok无法为自动生成的代码增加相应的注释,
在代码重构的时候也会很不方便,
实际减轻的工作量十分微小。
4.使用建议
4.1.用或者不用
新项目可以用,老项目可以不用,收益可能不大。
在自己的项目中可以随自己的喜好用或者不用。
在项目中投票,团队一致同意就可以用。
在项目中使用后发现有问题了可以不用,Lombok去掉也方便。
我个人并不主张使用lombok,其带来的代价足以抵消其便利。
4.2.使用替代品
试试Kotlin,你会爱上Kotlin,比Lombock更强劲。
还有很多人推荐Scala,大家感兴趣就都试一试吧。
5.参考
lombok踩坑与思考
使用lombok的利弊
Lombok 到底应不应该使用?
Is it safe to use Project Lombok?
Don’t use Lombok
Lombok的利弊的更多相关文章
- 使用lombok的利弊
使用lombok的好处是:1.减少大量的模板代码,get和set方法,从代码封装维度看,将大量的模板代码进行封装,不需要其他人员来不断编写,哪怕是IDE可以生成的代码,这也是重复代码,减少重复的出现; ...
- 听说用 Lombok 可以早点下班?
听说隔壁用 Lombok 的六点就下班了,我也想六点下班! 好的,那么这篇文章就介绍下什么是 Lombok,Lombok 做了什么以及 Lombok 是怎么做的? 在介绍之前,先通过是否使用 Lomb ...
- 记录一次bug解决过程:eclipse集成lombok插件
一 总结 eclipse集成插件lombok: 启动Spring Boot项目: sublime全局搜索关键字:ctrl + shift + F JDK8中的lambda表达式使用 二 BUG描述:集 ...
- lombok在IntelliJ IDEA下的使用
lombok是一款可以精减java代码.提升开发人员生产效率的辅助工具,利用注解在编译期自动生成setter/getter/toString()/constructor之类的代码.代码越少,意味着出b ...
- lombok 简化java代码注解
lombok 简化java代码注解 安装lombok插件 以intellij ide为例 File-->Setting-->Plugins-->搜索"lombok plug ...
- Lombok 安装、入门 - 消除冗长的 java 代码
lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码. lombok 的官方网址:http://projectlombok.org/ lombok 安装1. ...
- lombok介绍
Lombok是一种JavaArchive(JAR)文件,可用来消除Java代码的冗长.在写代码时,可以通过这个插件消除各种getter和setter,toString等常用方法. lombok 注解: ...
- Lombok简化Java代码
导包:import lombok.Data; Lombok简化Java代码: 在Lombok中,生成构造方法的annotation一共有三个:@NoArgsConstructor, @Required ...
- myeclipse 手动安装 lombok
1. 将 lombok.jar 复制到 myeclipse.ini / eclipse.ini 所在的文件夹目录下 2. 打开 eclipse.ini / myeclipse.ini,在最后面插 ...
随机推荐
- Android Menu的基本用法
使用xml定义Menu 菜单资源文件必须放在res/menu目录中.菜单资源文件必须使用<menu>标签作为根节点.除了<menu>标签外,还有另外两个标签用于设置菜单项和分组 ...
- Linux学习 - 文本编辑器Vim
一.Vim工作模式 二.命令 插入 a 光标后插入 A 光标所在行尾插入 i 光标前插入 I 光标所在行首插入 o 光标下插入新行 O 光标上插入新行 删除 x 删除光标处字符 nx 删除光标处后 ...
- SVN的基本介绍\服务器配置
### 1. 工作场景 1. 进入公司需要做的关于开发的第一件事, 就是向项目经理索要SVN服务器地址+用户名+密码### 2. 角色解释> 服务器: 用于存放所有版本的代码,供客户端上传下载更 ...
- js调用高德地图API获取地理信息进行定位
<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=(需要自 ...
- js中获取url参数
function getUrlVars() { var vars = [], hash; var hashes = window.location.href.slice(window.location ...
- 什么是JMS规范?
一.简介 JMS是什么:JMS是Java提供的一套技术规范和关于消息中间件的协议 JMS干什么用:通过生产者Producer,消息服务器,以及消费者通力合作,使异构系统能进行集成通信,缓解系统瓶颈,提 ...
- (转)Zookeeper原理和作用
本周末学习zookeeper,原理和安装配置 本文参考: http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/ http:/ ...
- JDK ThreadPoolExecutor核心原理与实践
一.内容概括 本文内容主要围绕JDK中的ThreadPoolExecutor展开,首先描述了ThreadPoolExecutor的构造流程以及内部状态管理的机理,随后用大量篇幅深入源码探究了Threa ...
- CF740B Alyona and flowers 题解
Content 有 \(n\) 个数 \(a_1,a_2,a_3,...,a_n\),给定 \(m\) 个区间,你可以选择一些区间使得它们的总和最大(也可以不选),求这个最大的总和. 数据范围:\(1 ...
- CF1064A Make a triangle! 题解
Content 有三条长度分别为 \(a,b,c\) 的线段.你可以在一个单位时间内将一条线段的长度增加 \(1\),试求出能使这三条线段组成一个三角形的最短时间. 数据范围:\(1\leqslant ...