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

最新文章

  1. Js ==和===的区别
  2. 如何提高账户密码存储的安全性——PasswordSalt的使用
  3. 第7章 权限管理(1)_ACL权限
  4. C#再识委托
  5. PowerShell remoting中的second-hop问题
  6. LightOJ1079 Just another Robbery(DP)
  7. 用FileInputStream读文件,字节数组接收,不知道文件的大小时怎么办
  8. get改造成post请求
  9. Linux下运行C++程序出现"段错误(核心已转储)"的原因
  10. 硬盘被误格式化或Ghost还原后的数据恢复
  11. 安卓MonkeyRunner源码分析之启动
  12. json和xml封装数据、数据缓存到文件中
  13. python20171113笔记
  14. Java排序算法分析与实现:快排、冒泡排序、选择排序、插入排序、归并排序(二)
  15. 攻防常用命令(linux)
  16. RBAC用户特别授权的思考
  17. Python之List列表的增删改查
  18. 4 Git 基础 - 撤消操作
  19. java.io.UnsupportedEncodingException
  20. Spring之jdbcTemplate实现orm

热门文章

  1. MySQL(4):卸载MySQL
  2. class.getName()和class.getSimpleName()的区别
  3. Spring Boot中使用Redis
  4. 【Linux】【Services】【Project】Haproxy Keepalived Postfix实现邮件网关Cluster
  5. 11.Vue.js-事件处理器
  6. 【力扣】649. Dota2 参议院
  7. 【C/C++】旋转数组的最小数字/ 剑指offer
  8. 关于synchronize与lock的区别
  9. bjdctf_2020_babyrop2(没有成功拿到shell)
  10. &pwn1_sctf_2016 &ciscn_2019_n_1 &ciscn_2019_c_1 &ciscn_2019_en_2&