版权声明:知识本无差别,何必在意你我? https://blog.csdn.net/qq_33774822/article/details/83414732
目录
@EqualsAndHashCode:重写equals和hashCode方法
前提
最近公司开始了一个新的项目,使用SpringCloud作为技术选型。自然开发任务也就来了,从git上拉取代码之后,就发现实体里面没有setter和getter方法,导致代码报错。
这代码是老大提交的,应该不会傻到错误的代码也提交了吧,那么原因只有一个,肯定是我本地有什么不对。搜索了一下,知道了我们在pom文件中加入lombok的依赖,版本用的是1.16.16,而我本地idea没有这个插件,所以报错了。
既然找到了原因,那么我们就学习一下。
lombok是什么?
lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。
在IDEA中安装插件
因为我已经安装好了,所以步骤五是restart,如果没有安装时install,即表示下载安装。
安装完重启一下IDEA就OK啦。
如何使用
@Data:全家桶
使用这个注解即类似于全家桶,啥都有。
@Setter:生成setter方法
只有两个变量的setter的方法。
@Getter:生成getter方法
只有两个变量的setter方法。
@Slf4j:日志输出语句
多了一个变量log,是打印日志用的。
@AllArgsConstructor:所有参数的构造
id和name的有参构造。
@NoArgsConstructor:无参构造
多了无参构造方法。
@EqualsAndHashCode:重写equals和hashCode方法
@ToString:重写toString方法
总结
优点
代码变得简洁,不用过多的去关注相应的方法
缺点
- 不支持多种参数构造器的重载
- 虽然省去了手动创建getter/setter方法的麻烦,但大大降低了源代码的可读性和完整性,降低了阅读源代码的舒适度