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,在最后面插 ...
随机推荐
- myBatis批量添加实例
<!-- 批量添加中转地数据 --> <insert id="addBatch" parameterType="com.isoftstone. ...
- 通过js禁用浏览器的回退事件
js代码: <script> history.pushState(null, null, document.URL); window.addEventListener('popstate' ...
- 设计模式和java实现
三种工厂模式:https://www.cnblogs.com/toutou/p/4899388.html 适配器模式:https://www.cnblogs.com/V1haoge/p/6479118 ...
- 【JavaWeb】【MySQL】【edu01】jdbc.properties配置文件的编写
前提准备 导入 mysql-connector-java-版本号 的jar包 下面为大家提供几个jar包下载地址 点击进入下载界面 >>推荐 MySQL官方 多版本选择 点击进入下载界面 ...
- 我的第一篇博客blog,笑哭
我的第一篇博客blog Markdown学习 一级标题:#加一个空格 加 文字, 二级标题:加2个##以此类推 字体 粗体:hello world!字体前有二个星号,字体后有二个星号 斜体:hello ...
- linux下编译php扩展
1 在pecl.php.net搜索你需要的php扩展 2 在解压后的扩展目录运行phpize 3 执行编译./configure --with-php-config=/usr/local/php/bi ...
- IOS 真机调试和发布相关证书
一.成员介绍1. Certification(证书)证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种:1) Developer Certification(开发证书)安装在电脑上 ...
- 资源分配(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 资源设置好以后,不能光摆着看,分配到各任务中去才是正道. 分配资源就需要回到与任务相关的视图了,比如[任务工作表]视图或者 ...
- TensorFlow.NET机器学习入门【1】开发环境与类型简介
项目开发环境为Visual Studio 2019 + .Net 5 创建新项目后首先通过Nuget引入相关包: SciSharp.TensorFlow.Redist是Google提供的TensorF ...
- CF420A Start Up 题解
Content 给定一个长度为 \(n\) 的字符串,求这个字符串整个反转过来后是否和原字符串一样. 数据范围:\(1\leqslant n\leqslant 10^5\). Solution 众所周 ...