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方法比较的时候也可以高度的自定义。