lombok是一款Java实用工具,可用来帮助开发人员消除Java的冗长,尤其是对于简单的Java对象(POJO)。

在实际开发中,是不是发现经常需要变更model类、vo类、dto等一些实体类,随便编码工具Eclipse或者idea等都可以一键重新生成getter或setter方法,但是做起来依然很繁琐。

有没有更好更优雅的解决方法呢,lombok就是答案。lombok采用注解的方式,消除代码中的构造方法,getter/setter等代码,使我们写的类更加简洁,修改起来更加方便快捷。

当然,这带来的副作用就是不易阅读,不过,对于本来就简单的getter/setter之类,我觉得并不是很大的影响。

一、lombok安装

工欲善其事,必先利其器,要使用lombok,我们先要给我们的编辑器安装lombok插件。这里主要介绍下eclipse与IDEA集成lombok。

1.eclipse安装lombok

首先到官网下载插件,地址:http://projectlombok.org/

下载按成后,可以看到lombok本身就是一个java的jar程序。所以可以直接选择在lombok的位置执行java -jar lombok.jar,或者直接双击lombok.jar,然后点击install/update即可安装。安装成功后eclipse目录下的eclipse.ini文件中将会有lombok.jar的路径。

既然jar的功能是生成路径,那其实我们也可以选择手动安装,直接将lombok.jar包拷贝到eclipse的安装目录下,并且在eclipse.ini添加lombok的路径。

1.IDEA安装lombok

在IDEA中选择File->Setting->Plugins搜索Lombok Plugin,点击install,安装完成后重启IDEA即可。

二、lombok使用

在安装插件后,就开始来体验lombok吧,要想使用lombok,只需要在pom文件(maven项目)中引入依赖即可,然后就可以愉快的玩耍了。

下面我们就来看看lombok常用的一些注解。

随便常见一个工程,引入lombok依赖。

1.@Getter/@Setter

这个从名字上大概就已经可以看出大概个用法,就是提供getter/setter方法,从而避免了修改字段需要从新生成getter/setter方法。这个注解可以使用在字段上,提供单个字段的getter/setter,也可以直接写在类上,提供整个类所有非静态成员变量的getter/setter。

2.@ToString/@EqualsAndHashCode

同样故名思议,这也是lombok的特点,看名字就知道用法,这两个注解就是生成toString,equals和hashcode方法。同时后者还会生成一个canEqual方法,用于判断某个对象是否是当前类的实例,生成方法时只会使用类中的非静态和非transient成员变量 。

那如果不想使用默认的所有字段呢,这两个注解也提供了of来指定包含,或者使用exclude属性来指定排除。

3.@NoArgsConstructor/@AllArgsConstructor/@RequiredArgsConstructor

这三个注解就是提供构造方法,NoArgs表示无参数,AllArgs表示全部参数,而Required表示可以选的。

@NoArgsConstructor和@AllArgsConstructor直接使用即可,但@RequiredArgsConstructor怎么使用呢,它怎么知道我要使用哪些参数的,所以这个注解必须和另一个注解配合使用,那就是@NonNull,它用来指定构造参数需要使用那些个参数。

@RequiredArgsConstructor在使用会有一点小bug,可以看到此时我们是没有无参的构造方法,且代码提示也不包含无参数的构造方法,但是并不影响调用,也是可以正常运行使用的。

4.@Data/@Value

@Data注解综合前面的@Getter/@Setter,@ToString/@EqualsAndHashCode,@NoArgsConstructor和@RequiredArgsConstructor ,所以一般的po或者vo类,这一个注解就ok了。

@Value注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法。

5.@NonNull

@NonNull除了与@RequiredArgsConstructor结合使用,还可以用来做空校验,当使用@NonNull注解的参数为空时,则会抛出异常。

6.@Cleanup

在很多设计资源读取时,我们在资源文件使用完之后都需要手动去关闭资源,一般做法是使用try……finally,而@Cleanup就相当于这种写法,会在资源使用后关闭资源。

7.@SneakyThrows

编写代码时,我们常常要处理各种异常,@SneakyThrows则可以自动生成try……catch代码块,然后对于6的代码,我们就可以改写如下,是不是瞬间清爽了很多,但是@SneakyThrows是包裹整个方法,如果只想包裹方法里面部分代码语句,那只能自己动手了。

8.@Log/@Slf4j/@Log4j等

这类注解就是生成默认生成一个log日志对象,供程序中调用,具体使用什么日志,得取决于项目采用的日志系统。

这就是关于lombok的一部分注解,更多注解和功能大家可以自行摸索或者翻阅资料。最后,友情提示,用lombok一时爽,一直用lombok一直爽。

eclipse lombok插件安装_便捷开发,解放双手,lombok插件相关推荐

  1. 推荐几个好用的IDEA插件_让你解放双手的秘密

    推荐几个好用的IDEA插件_让你解放双手的秘密 今天给大家介绍几个常用的IDEA插件,能给大家在枯燥的IDE里带来更好的coding体验.主要有阿里巴巴编程规范插件.翻译插件.代码自动补全插件.代码快 ...

  2. 适用于typecho的百度自动收录链接提交插件及代码操作,解放双手,再也不用手动提交收录了!

    原文链接:https://www.waoww.com/typecho-plugin/typecho-plugin-AutoBaiduSubmit.html 好吧,最近没事闲逛的时候,发现了一个有趣的插 ...

  3. 解决vscode插件安装不成功,xxx.vue高亮插件问题

    解决vscode插件安装不成功,xxx.vue高亮插件问题 提示:vue插件 vue中 xxx.vue 的插件,没安装之前是黑白显示,安装之后彩色.语法高亮插件是 "Vue 3 Snippe ...

  4. eclipse lombok插件安装_如果你是Java架构师或项目经理,项目技术会允许使用Lombok吗?

    Lombok Lombok项目是一个Java库,通过注解,来消除Java类中的大量样板代码.比如常见的Getter&Setter.toString().构造函数等等. 看个例子,以前我们构建一 ...

  5. idea lombok插件安装_开发效率不高?墙裂推荐这十款精选 IntelliJ IDEA 插件

    作者 | 雷架来源 | 爱笑的架构师(ID:DancingOnYourCode) 头图 |  CSDN 下载自东方IC 俗话说:"工欲善其事必先利其器",小主从项目实战的角度在众多的idea插件中挑选 ...

  6. vim插件安装_如何安装Vim插件

    vim插件安装 尽管Vim快速高效,但默认情况下,它只是一个文本编辑器. 至少,这就是没有插件的情况,插件基于Vim并添加了额外的功能,使其不仅具有键入文本的窗口,还具有更多的功能. 正确搭配各种插件 ...

  7. android中的插件开发框架,设计并开发一个 Android 的插件化框架

    结合动态加载系列文章的分析,现在开始设计并开发一个 Android 的插件化框架,命名为 Frontia.Frontia 有 "前端" 的意思,寓意着 Android 插件能像前端 ...

  8. 3s安装JupyterLab,4步完成JupyterLab插件安装(附多款高生产力插件推荐)

    Jupyter相信大家都不陌生,我们会经常用Jupyter来完成数据清理.转化.数值模拟.统计建模.机器学习等等,而且Jupyter本身将代码和输出集成在一个文档上,在日常工作过程中更加有效的提高我们 ...

  9. Sublime Text 3 的插件安装(完美解决插件安装出错的问题)及常用插件推荐

    一.安装Package Control包 1.用Chrome插件setupvpn翻出去(只要能翻啥都行),然后打开 https://packagecontrol.io/installation 2.下 ...

最新文章

  1. centos6.3下yum安装redis
  2. 返璞归真的Linux BFS调度器
  3. Oracle通过OCI批量加载需要注意的问题
  4. MySQL中group_concat()函数用法总结
  5. 【BZOJ 3229】 3229: [Sdoi2008]石子合并 (GarsiaWachs算法)
  6. 状态反射在体育运动中的作用_建筑用热反射隔热涂料的研究进展
  7. 前端学习(847):H5自定义属性
  8. 02-go的IDE安装
  9. 迁移分支_资料 | 迁移学习简明手册
  10. Linux内核:kprobe机制-探测点
  11. java 屏幕键盘io
  12. 使用IDEA在Maven中创建MyBatis逆向工程以及需要注意的问题(入门)
  13. 有没有大佬无偿提供一下 华为HCNA-Cloud Service-题库H13-811
  14. vscode插件(安装路径),压缩js文件解压,方便查看
  15. 手游中控台多开脚本实战
  16. 合成分红游戏源码_ThinkPHP宠物养成合成类游戏APP陀螺世界程序源码 已优化
  17. 苹果账号的分类以及注册免费苹果账号
  18. 数据中心产业深度报告:IDC产业链景气周期及投资框架分析
  19. P1251 餐巾计划问题 解题报告
  20. IDEA中pom文件变成了橘色

热门文章

  1. 国内免费GPU资源哪里找,让我告诉你最新的薅羊毛“秘籍”
  2. Github大热论文 | U-GAT-IT:基于GAN的新型无监督图像转换
  3. KDD 18论文解读 | 斯坦福大学提出全新网络嵌入方法 — GraphWave
  4. 每周论文清单:高质量文本生成,多模态情感分析,还有一大波GAN | PaperDaily #26
  5. ajax 入参为list_ajax传递给后台数组参数方式
  6. 【Java注解系列】内置注解与AOP实现自定义注解
  7. PDF搜索、转换与处理类网站
  8. Plus from Picture
  9. IDEA第一个mybatis程序 mybatis增删查改操作 mybatis的map模糊查询
  10. spark sql and hive 3g数据测试