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,在最后面插 ...
随机推荐
- Spring Cloud Feign原理详解
目录 1.什么是Feign? 2.Open Feign vs Spring Cloud Feign 2.1.OpenFeign 2.2.Spring Cloud Open Feign 3.Spring ...
- OSGI与Spring结合开发web工程
简介: 作为一个新的事实上的工业标准,OSGi 已经受到了广泛的关注, 其面向服务(接口)的基本思想和动态模块部署的能力, 是企业级应用长期以来一直追求的目标.Spring 是一个著名的 轻量级 J2 ...
- 【Spring Framework】Spring入门教程(三)使用注解配置
本文主要介绍四个方面: (1) 注解版本IOC和DI (2) Spring纯注解 (3) Spring测试 (4) SpringJDBC - Spring对数据库的操作 使用注解配置Spring入门 ...
- 【Java 多线程】Java线程池类ThreadPoolExecutor、ScheduledThreadPoolExecutor及Executors工厂类
Java中的线程池类有两个,分别是:ThreadPoolExecutor和ScheduledThreadPoolExecutor,这两个类都继承自ExecutorService.利用这两个类,可以创建 ...
- SpringBoot的定时任务
springBoot定时任务可分为多线程和单线程,而单线程又分为注解形式,接口形式 1.基于注解形式 基于注解@Scheduled默认为单线程,开启多个任务时,任务的执行时机会受上一个任务执行时间的影 ...
- java 对 final 关键字 深度理解
基础理解 : 1.修饰类 当用final去修饰一个类的时候,表示这个类不能被继承.处于安全,在JDK中,被设计为final类的有String.System等,这些类不能被继承 .注意:被修饰的类的成员 ...
- IDE常用插件
IDE 常用插件集合 :
- 使用 scipy.fft 进行Fourier Transform:Python 信号处理
摘要:Fourier transform 是一个强大的概念,用于各种领域,从纯数学到音频工程甚至金融. 本文分享自华为云社区<使用 scipy.fft 进行Fourier Transform:P ...
- C# .exe和.dll文件图标资源提取工具
Windows 可执行文件(.exe)和动态库文件(.dll)图标资源提取工具 GitHub 功能 图标资源预览 图标资源导出(仅支持导出 PNG 格式) 代码 获取图标资源使用了 Win32 API ...
- linux文件属性和系统信息
文件属性 1.权限 权限指某一个用户针对某个文件所能做的操作 1.权限的种类 可读(r) 可写(w) 可执行(x) 无权限(-) 2.权限位 linux中的权限位分为三个部分,分别是属主.属组和其他人 ...