本文主要是介绍IDEA2018升级2023,lombok插件不兼容导致get/set方法无法使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、问题
最近了解到一款叫CodeGeeX 的智能编程助手,想要试用一下,但是IDEA2018版本太低了,没有CodeGeeX插件,于是打算将IDEA升级到2023.2.5版本,具体升级过程略过,升级完成后,启动项目,报错了:
D:\GIT\QduTrustPlatForm\CommonModelAndUtility\SecondNetModel\src\main\java\com\ggnykj\smartems\cloud\model\secondnet\bo\BhzUnitBO.java:59:22
java: 找不到符号符号: 方法 getWbBhzUnitId()位置: 类型为com.ggnykj.smartems.cloud.model.secondnet.WbBhzUnit的变量 bhzUnit
public BhzUnitBO(WbBhzUnit bhzUnit) {super(bhzUnit.getWbBhzUnitId(), bhzUnit.getWbBhzUnitName(), bhzUnit.getWbBhzUnitIdShortName(), bhzUnit.getWbAreaId(), bhzUnit.getPumpType(),bhzUnit.getPumpFlow(), bhzUnit.getPumpPower(), bhzUnit.getPumpLift(), bhzUnit.getPumpEffic(), bhzUnit.getExchangeType(),bhzUnit.getExchangeArea(), bhzUnit.getExchangeEffic(), bhzUnit.getXPos(), bhzUnit.getYPos(), bhzUnit.getSupplyPressure(),bhzUnit.getBackPressure(), bhzUnit.getScale(), bhzUnit.getSignWidth(), bhzUnit.getIsvalid(), bhzUnit.getRemark());}
@Data
public class WbBhzUnit implements Serializable {private static final long serialVersionUID = 1L;/*** 机组ID*/private int wbBhzUnitId;private Integer companyId;
看到上面的内容,其实问题就很简单了,我的实体类,使用了lombok插件,只需要在类上加@Data注解,插件就可以自动实现类下面字段属性的get/set方法。但是因为IDEA2018升级到IDEA2023,版本差的较多,到底lombok插件的版本差距较大,旧版本的lombok插件与新版IDEA不兼容。
2、解决方案
因为idea,自带的lombok插件,都已经自动升级了,这里说的旧版本的lombok插件与新版IDEA不兼容,是指项目中的pom.xml文件中maven引入的lombok版本,与新版IDEA的lombok插件版本不兼容。我IDEA2018项目中的pom.xml文件中maven引入的版本是lombok1.18.2,但升级到IDEA2023以后,这个版本与IDEA2023中自带的lombok插件版本比较就落后不兼容了,所以,我把maven引入的版本升级lombok1.18.24,这样版本就可以兼容了,重新引入jar包后,重启服务,就不报错了。
原版本
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.2</version><scope>provided</scope></dependency>
新版本
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version><scope>provided</scope></dependency>
这篇关于IDEA2018升级2023,lombok插件不兼容导致get/set方法无法使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!