使用Lombok来精简你的项目代码

什么是Lombok

一言以蔽之:lombok是一种工具,提供了简单的注解来简化我们的重复冗长Java代码。比如一个Java Bean,注解了lombok的@Data:


  1. @Data  
  2. public class NormalBean {  
  3. private String name;  

等价于以下代码,Getter/Setter,toString,equals和hashCode方法会在编译时自动生成。


  1. public class NormalBean {  
  2. private String name;  
  3. public String getName() {  
  4. return name;  
  5. }  
  6. public void setName(String name) {  
  7. this.name = name;  
  8. }  
  9. @Override  
  10. public boolean equals(Object o) {  
  11. if (this == o) return true;  
  12. if (o == null || getClass() != o.getClass()) return false;  
  13. NormalBean that = (NormalBean) o;  
  14. return name != null ? name.equals(that.name) : that.name == null;  
  15. }  
  16. @Override  
  17. public int hashCode() {  
  18. return name != null ? name.hashCode() : 0;  
  19. }  
  20. @Override  
  21. public String toString() {  
  22. return "NormalBean{" +  
  23. "name='" + name + '\'' +  
  24. '}';  
  25. }  

lombok的官网,官网上有比较详细的文档。

安装

lombok不仅要在项目中添加jar包,也要通过插件的形式开启IDE的支持。如果你的项目是maven构建的,那么需要在pom.xml中添加以下依赖:


  1. <dependency>  
  2. <groupId>org.projectlombok</groupId>  
  3. <artifactId>lombok</artifactId>  
  4. <version>1.16.10</version>  
  5. </dependency> 

这里推荐使用bom的形式管理pom依赖。比如Spring io platform里就包含了lombok的dependencyManagement。

idea

在idea下lombok的安装比较简单,在plugin里面安装lombok plugin即可

eclipse

  • 将lombok.jar 复制到 eclipse.ini所在文件夹的根目录
  • 编辑 eclipse.ini ,在末尾加入:

-Xbootclasspath/a:lombok.jar  

-javaagent:lombok.jar 

  • 重启

其他的IDE添加lombok支持请看这里

用途

lombok包含了很多注解,如果全部用上,的确可以精简很多的代码。但在实际的项目中,我们常常只在定义Java Bean的时候用上lombok,而在业务代码中很少用到。因为lombok虽然能精简代码,但缺点也非常明显:

  • 降低代码的可读性
  • 调试困难

大部分情况下,我们都应该将代码的可读性放在编码要考虑因素的首位,以下这几个是我觉得最常用的几个lombok注解:

@Data

@Setter/Getter

@Log

@NoArgsConstructor, @RequiredArgsConstructor和 @AllArgsConstructor

@Builder

@Log和一系列相关注解(如@Log4j,@Slf4j)是我最喜欢的注解,不用写一堆的getLogger。还有@Builder也很方便,应付简单的Builder模式足以。

总结

lombok是个非常有用的工具,能够帮助我们精简很多臃肿冗长的代码,不过也有其局限性,推荐在定义Java Bean中使用。

作者:佚名

来源:51CTO

时间: 2024-09-15 19:18:26

使用Lombok来精简你的项目代码的相关文章

嵌入式 十个最值得阅读学习的C开源项目代码

开源世界有许多优秀的开源项目,我选取其中十个最优秀的.最轻量级的C语言的项目,希望可以为C语言开发人员提供参考. 十个最值得阅读学习的C开源项目代码 1. Webbench 2. Tinyhttpd 3. cJSON 4. CMockery 5. Libev 6. Memcached 7. Lua 8. SQLite 9. UNIX v6 10. NETBSD 十个最值得阅读学习的C开源项目代码 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fo

循序渐进开发WinForm项目(2) 项目代码的分析

在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资 料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我们每天面对的太多东西了,觉得很多都稀松平常了,即使很细微的地方,可能我们都已经 形成习惯了.反过来,如果我们切换到其他领域,如IOS.android,那么开始我们可能对里面很多设计 的规则不甚了解,开始可能也是一头雾水. 本篇继续上一篇<循序渐进开发WinForm项目(1) --数据库设计和项目框架的生成>

最精简的相册管理代码

Micrsoft为我们提供了最精简的相册管理代码: using System; using System.Collections; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing

简单且实用-求些小项目代码简单的就行

问题描述 求些小项目代码简单的就行 java小项目代码,谁有些,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 解决方案 自己百度搜一个呗,或者看下CSDN首页的热门下载中的资源.简单的学习项目在这个资源异常丰富的互联网时代,只要你费点心,还是大量存在的. 解决方案二: web?还是android的?多小?你的需求很模糊. 解决方案三: 我空间上传过一些小程序代码

myeclipse2015 保存项目代码时经常提示user operation is waiting

问题描述 myeclipse2015 保存项目代码时经常提示user operation is waiting 已经按照网上说法进行优化, 是因为项目比较大导致的吗?还是myeclipse2015的问题? (关闭build automatically可以改善,还有其他的办法吗?) 谢谢了~ 解决方案 参考[转][转]彻底解决 Eclipse出现the user operation is waiting的问题 网上一般的解决办法是 :project->Build Automaticlly前面的钩钩

Google Code项目代码托管网站上Git版本控制系统使用简明教程

作为一个著名的在线项目代码托管网站,Google Code目前主要支持三种版本控制系统,分别为Git, Mercurial和 Subversion.Subversion即SVN相信大家都已经熟知了,这里我们要介绍的是最近新增的Git版本控制系统. 如果您在Google Code上的项目已经使用SVN进行版本管理,也可以很方便的在本地使用Git对项目进行版本管理.详细操作步骤请参考: Convert your project from Subversion to Git 下面我们要讲的主要就是如果

初学者的忧伤-svn用分支管理项目代码覆盖

问题描述 svn用分支管理项目代码覆盖 我们用svn分支管理项目时,每个人都分出一个分支做自己的功能,但是在最后合并时候经常会出现两个人都修改某个文件,后面修改的人会将前面人写的内容覆盖掉,请问这种情况一般如何处理. 解决方案 SVN 分支管理项目 解决方案二: 分两种情况: 一:两个人修改同一份文件,但修改的地方不同 可以先把对方的修改操作更新(不是覆盖更新)下来,然后自己再提交 二:两个人修改同一份文件,但修改的地方相同 这个时候就得把对方叫到一起了,你们之间协商用哪一个

在哪里可以找到java web的项目代码并可以运行来学习?

问题描述 在哪里可以找到java web的项目代码并可以运行来学习? 在哪里可以找到java web(ssi,ssh,ssm等)的项目代码并可以运行拿来学习? 解决方案 http://www.mamicode.com/info-detail-891477.html

java项目代码同步问题,求大神指点

问题描述 java项目代码同步问题,求大神指点 一个java项目写了一些代码,然后两个人各自拷贝了项目,各自写了一些代码.现在要合并在一起,怎么合??请指教. 解决方案 使用svn,一个人把项目上传上去,另一个人更新下来,然后把自己的代码覆盖svn跟新下来的代码,提交,在提交的界面上比较提交文件,看看之前一个的代码那些别覆盖了,把他复制下来自己添加上去 解决方案二: 用 svn!!!!! 解决方案三: 用svn版本管理软件.分为服务器端和tortoise(用户端),svn服务器端记载了每个文件的