为何我不用Lombok

为何我不用Lombok

1. 什么是Lombok

Lombok是一个Java库,能自动挂载到编辑器和构建工具,为你的Java增光添彩。经过一个注解的方式,没必要再为类编写getter或eques方法,自动化日志变量,与更多。java

简单说Lombok经过一个注解来简化java代码,提升开发效率。编辑器

各类好处与实用技巧请自行百度谷歌工具

2. 为何我不用Lombok

  1. Lombok的侵入式太强了,若是项目中有一我的使用了,其余的人就必须用这个插件。若是别人不用,就根本无法跑程序。再者说,并非每一个人都在用IDE,没有这个插件怎么办。
  2. 并且若是一个底层的Jar文件依赖了Lombok,那么全部用到这个Jar的项目都必须添加Lombok的依赖,构建也须要设置,并且这个依赖不必定是显性的,有时候须要猜才能知道是Lombok的问题。
  3. 有的时候想确认是否调用了getter和setter,须要在源代码里加断点,可是添加了Lombok以后就只能猜想了。并且当想要知道某个属性的getter方法都被哪些类引用也很难查找到。
  4. 对于某些新的功能和复杂的功能,好比@EqualsAndHashCode(callSuper=true)和@AllArgsConstructor这些,且有可能产生混乱的特性还不敢使用,由于不知道自动生成的代码是什么样子。假若有不太懂的人使用,并且产生了和预期不同的结果,Debug也不是很方便。毕竟咱们不能保证每个人都很是了解Lombok的每个注释。
  5. 若是你的开发过程当中须要使用不少自定义的Annotation在JavaBean上,这个会致使在使用自定义Annotation的时候仍是须要手动写出getter和setter方法的。 若是只是简单的CRUD开发,那彻底能够忽略这个问题。
  6. 仍是会存在一些识别上问题,好比某些字段的的名字并不规范的时候,或者与公司规范冲突的时候仍是须要手写getter和setter方法的。好比pId字段在JavaBean规范中会写成getpId,uName会写成getuName。而在Lombok中却写成了getpid,getuname(至少Lombok在当前版本有这个问题)

3. 是问题但也不是问题的问题

  1. 有人说有升级的问题,其实不是大事,不少插件再系统版本升级的时候多少有些不适配,升级版本号就行了,只是Lombok做为底层依赖,要升级的地方比较多就是了。
  2. 有人说破坏封装,其实Lombok有专有的设置 @Setter(AccessLevel.PROTECTED) private String name;
  3. 有人说不会用的方法就不要用,我只想说,有些坑能够本身不踩,但不能控制别人不踩,最后致使整个项目出问题,仍是挺心烦的。

结语

别问我为何踩了这么多的雷,心累了。只是由于担忧再出现一些不知道的问题,已弃坑。url

固然毕竟Lombok并无强大到必须用的地步,也没有坑到一点也不能用,因此你们也都会各抒己见。所以主要仍是遵循如下两点.net

  1. 本身的项目,喜欢用就用,不喜欢用就不用
  2. 团队的项目,你们决定用不用,或者老大决定用不用

不喜勿喷,谢谢插件

相关文章
相关标签/搜索