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,在最后面插 ...
随机推荐
- GO 定时器NewTimer、NewTicker使用
package main import ( "fmt" "sync" "time" ) /** *ticker只要定义完成,从此刻开始计时, ...
- 使用jquery刷新页面以及javascript的一些基本函数
如何使用jquery刷新当前页面 下面介绍全页面刷新方法:有时候可能会用到 1.window.location.reload()刷新当前页面. 2.parent.location.reload()刷新 ...
- jdk1.7源码之-hashMap源码解析
背景: 笔者最近这几天在思考,为什么要学习设计模式,学些设计模式无非是提高自己的开发技能,但是通过这一段时间来看,其实我也学习了一些设计模式,但是都是一些demo,没有具体的例子,学习起来不深刻,所以 ...
- 【简】题解 P4297 [NOI2006]网络收费
传送门:P4297 [NOI2006]网络收费 题目大意: 给定一棵满二叉树,每个叶节点有一个状态(0,1),任选两个叶节点,如果这两个叶节点状态相同但他们的LCA所管辖的子树中的与他们状态相同的叶节 ...
- numpy基础教程--浅拷贝和深拷贝
在numpy中,使用等号(=)直接赋值返回的是一个视图,属于浅拷贝:要完整的拷贝一个numpy.ndarray类型的数据的话,只能调用copy()函数 # coding = utf-8 import ...
- 使用matplotlib中的bar函数绘制柱状图
使用柱状图显示三日电影的票房信息 要显示的数据为2018年12月7日-9日四场电影的票房信息 四场电影分别为:无名之辈,狗十三,毒液:知名守卫者,憨豆特工3 2018年12月7日四场电影票房分别为:[ ...
- CF1469D Ceil Divisions 题解
Content 你有一个长度为 \(n\) 的数组 \(a\),初始时,\(\forall i\in[1,n]\),\(a_i=i\). 每次操作选择两个数 \(x,y(1\leqslant x,y\ ...
- CF710C Magic Odd Square 题解
Content 构造出一个 \(n\times n\) 的矩阵,使得这个矩阵由 \(1\sim n^2\) 这些数字组成,并且这个矩阵的每行,每列,以及对角线的和都为奇数. 数据范围:\(1\leqs ...
- Qt Creator 源码学习笔记04,多插件实现原理分析
阅读本文大概需要 8 分钟 插件听上去很高大上,实际上就是一个个动态库,动态库在不同平台下后缀名不一样,比如在 Windows下以.dll结尾,Linux 下以.so结尾 开发插件其实就是开发一个动态 ...
- java 图形化工具Swing 创建工具条
通过JToolBar来创建工具条: Swing提供了JToolBar类来创建工具条,创建JToolBar对象时可以指定如下两个参数: (1),name: 该参数指定该工具条的名称. (2),orien ...