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的利弊的更多相关文章

  1. 使用lombok的利弊

    使用lombok的好处是:1.减少大量的模板代码,get和set方法,从代码封装维度看,将大量的模板代码进行封装,不需要其他人员来不断编写,哪怕是IDE可以生成的代码,这也是重复代码,减少重复的出现; ...

  2. 听说用 Lombok 可以早点下班?

    听说隔壁用 Lombok 的六点就下班了,我也想六点下班! 好的,那么这篇文章就介绍下什么是 Lombok,Lombok 做了什么以及 Lombok 是怎么做的? 在介绍之前,先通过是否使用 Lomb ...

  3. 记录一次bug解决过程:eclipse集成lombok插件

    一 总结 eclipse集成插件lombok: 启动Spring Boot项目: sublime全局搜索关键字:ctrl + shift + F JDK8中的lambda表达式使用 二 BUG描述:集 ...

  4. lombok在IntelliJ IDEA下的使用

    lombok是一款可以精减java代码.提升开发人员生产效率的辅助工具,利用注解在编译期自动生成setter/getter/toString()/constructor之类的代码.代码越少,意味着出b ...

  5. lombok 简化java代码注解

    lombok 简化java代码注解 安装lombok插件 以intellij ide为例 File-->Setting-->Plugins-->搜索"lombok plug ...

  6. Lombok 安装、入门 - 消除冗长的 java 代码

    lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码. lombok 的官方网址:http://projectlombok.org/  lombok 安装1. ...

  7. lombok介绍

    Lombok是一种JavaArchive(JAR)文件,可用来消除Java代码的冗长.在写代码时,可以通过这个插件消除各种getter和setter,toString等常用方法. lombok 注解: ...

  8. Lombok简化Java代码

    导包:import lombok.Data; Lombok简化Java代码: 在Lombok中,生成构造方法的annotation一共有三个:@NoArgsConstructor, @Required ...

  9. myeclipse 手动安装 lombok

    1. 将 lombok.jar 复制到 myeclipse.ini / eclipse.ini 所在的文件夹目录下    2. 打开 eclipse.ini / myeclipse.ini,在最后面插 ...

随机推荐

  1. VectorCAST - 通过确保测试的完整性控制产品质量

    软件测试面临的问题有一句格言是这样说的,"如果没有事先做好准备,就意味着做好了 失败的准备."如果把这个隐喻应用在软件测试方面,就可以这样说"没有测试到,就意味着测试失败 ...

  2. 【HarmonyOS】【xml】初学XML布局作业

    首先要明确,有两种布局方式 线性布局:DirectionalLayout 依赖布局:DependentLayout 好,接下来看一看下面的例子 页面案例1 代码如下: <?xml version ...

  3. Java oop 笔记

    摘要网址:http://note.youdao.com/noteshare?id=bbdc0b970721e40d327db983a2f96371

  4. Spring Cloud Eureka源码分析之服务注册的流程与数据存储设计!

    Spring Cloud是一个生态,它提供了一套标准,这套标准可以通过不同的组件来实现,其中就包含服务注册/发现.熔断.负载均衡等,在spring-cloud-common这个包中,org.sprin ...

  5. Apache log4j2 远程代码执行漏洞复现👻

    Apache log4j2 远程代码执行漏洞复现 最近爆出的一个Apache log4j2的远程代码执行漏洞听说危害程度极大哈,我想着也来找一下环境看看试一下.找了一会环境还真找到一个. 漏洞原理: ...

  6. 成本计算?(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 成本各种输入以后就该计算了是吗? 其实,计算有我什么事啊,不都是些四则运算吗?Project要是连这都搞不定,他还在地球上 ...

  7. Excel里的格式会自动变成日期或会计专用吗?(Excel技巧集团)

    Excel里的格式会自动变成日期或会计专用? 正常情况下当然不会了,可是最近却有很多很多同学问这样的问题,并把这个问题列成了Excel2007和2010的一个Bug,可是小妖同学却从来没遇到过这样的问 ...

  8. java 输入输出IO流 IO异常处理try(IO流定义){IO流使用}catch(异常){处理异常}finally{死了都要干}

    IO异常处理 之前我们写代码的时候都是直接抛出异常,但是我们试想一下,如果我们打开了一个流,在关闭之前程序抛出了异常,那我们还怎么关闭呢?这个时候我们就要用到异常处理了. try-with-resou ...

  9. selecter模块默认使用epoll 实现IO多路复用,展示单线程的并发效果

    import selectors import socket sel = selectors.DefaultSelector() def accept(sock, mask): conn, addr ...

  10. 可以通过外键的.id直接传值

    可以通过外键的.id直接传值 如<input type="text" name="user.department.id" value="1&qu ...