Lombok使用与问题
前言
想想已经工作了一年,工作中遇到的问题一直没有记录下来,以后遇到相同的问题可能还需要花费很多的时间,因此打算记录一下博客。方便以后自己的复习和问题查找
刚好最近项目引入了lombok,刚好从现在起记录一下自己的学习与成长
一、lombok安装
lombok是一个开源项目,源代码托管在github上,使用的时候需要在maven中引入jar包
<dependency> <groupid>org.projectlombok</groupid> <artifactid>lombok</artifactid> <version>1.16.20</version> <scope>provided</scope> </dependency>
并且需要在开发工具中安装插件。通过eclipse或idea的插件市场自动安装即可。
还可以通过jar包本地安装:在jar包所在目录打开windows命令行,输入
java -jar lombok-1.16.20.jar
程序会自动找到eclipse或idea安装目录,点击install/update安装即可
二、lombok注解使用
lombok常用的注解有
@getter @setter @tostring @equalsandhashcode @data @nonnull
其中前4个注解顾名思义即可知道是什么意思,在类上标注后,lombok即可生成对应的方法
其实我们只需要@data一个注解即可,它可以生成getter、setter、equals、canequal、hashcode、tostring方法。
使用起来十分方便,也会简化了平时我们的开发
@nonnull :该注解加在属性上,使用该注解可以在对应属性的set方法中判断是否为空,若为空则会抛出空指针异常
虽然提高了编码效率,却存在一个重要的问题,如果我们的类中有继承关系并且使用到equals方法比较的话,最好不要使用lombok,@data和@equalsandhashcode两个注解所生成的方法只会比较子类的属性,对于父类的属性不会去做比较,因此可能属性并不相同的两个对象会被判断为相等
三、总结
lombok虽然帮助我们大大简化了代码,提高了整洁度,但是却降低了可读性,也对继承的特性支持不是很好,某些情况下是可以增加我们的效率,但是建议还是自己编写,毕竟开发工具可以自动生成方法,也不会有多麻烦,并且在equals方法比较的时候也可以高度的自定义。
推荐阅读
-
如何书写高质量jQuery代码(使用jquery性能问题)
-
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
-
JS实现图片旋转动画效果封装与使用示例
-
解决vuejs 使用value in list 循环遍历数组出现警告的问题
-
Java与MySQL时间戳传递/存储/协调问题--userLegacyDatetimeCode--userTimezone--serverTimezone
-
PHP中include与require使用方法区别详解
-
MYSQL日志与备份还原问题详解
-
PHP商品秒杀问题解决方案实例详解【mysql与redis】
-
AJAX使用get与post模式的区别分析
-
php pthreads多线程的安装与使用