一、问题

Java类用了@AllArgsConstructor的注解,但是在单元测试的时候依然提示只有无参的构造函数。

二、问题分析及解决

@AllArgsConstructor这个注解是lombok包里的。

这个包我们已经在pom.xml文件加入项目依赖了 ,通过侧边栏可以看出确实下载下来了,源码也可以点进去。

但是我们深入这个包看一下,发现lombok的依赖是空的。

PS写给我自己看的

因为项目里引入了spring-data-elasticsearch这个包,在深入这个包的时候,记得看到了有关lombok不能用的信息。

大概的意思是,我们在spring-data-elasticsearch中不再使用lombok了,但是仍然把lombok的版本写在父项目里(如下图)。只不过在spring-data-elasticsearch中将其版本写为999999,让maven强制在../src/test/resources/local-maven-repo/下生成一个lombok的空包。

不知道是否是这个原因导致了在test中无法使用lombok。

 

安装完成后,重启IDEA。问题解决!

 三、总结

看起来应该是随着版本的升级,lombok不再以依赖包的方式使用,而是改为以插件的方式使用了。

对,就是这样的,Lombok作为依赖总会出现很多版本带来的问题,使用插件的方式就不会报错了。

四、lombok的使用

作用:简化程序员写pojo类的代码量。一个完整的pojo类除了成员变量,还得写无参构造方法、有参构造方法、setter方法、getter方法、toString方法、equals方法以及hashcode方法等等。有了lombok以后,只需要加一个注解就可以添加你想要的方法。

常用的注解有:

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐