【已解决】lombok java 无法将类 XX类中的构造器 X应用到给定类型

java: 无法将类 jiaYou.Card中的构造器 Card应用到给定类型; 需要: 没有参数 找到: java.lang.String,java.lang.String,java.lang.String,double 原因: 实际参数列表和形式参数列表长度不同

1、开始排查是不是lombok版本号和idea版本对不上

2024.1的版本就是得用.30版本的,用其他版本的会报错

2、打开idea  注释处理器(Annotation Processors) 路径为File ->setting -> build,execution,deploment->Compiler -> Enable annotation processing

勾选的和我一样即可,下面的 run processors in a separate step before compiling java 是优化注释处理器的性能的

  3、一般到第二步就能用了,如果还是不能请先检查前面的两个步骤,然后打开IDEA 上面的Help-》edit custom VM options  

加上下面这行,记得修改Path的对应路径

-javaagent:Path\java\lib\lombok-1.18.30.jar

到这里就结束了

Java中,如果遇到“无法中的构造器应用给定类型”的错误,通常是因为你在试图创建某个对象时,使用的构造函数与目标类型的期望构造器不匹配。这可能是以下几个原因: 1. **不兼容的参数列表**:尝试使用了一个接受不同参数或参数数量的构造函数。检查构造函数是否与所需实例化的的构造函数一致。 ```java // 错误示例: YourClass yourObj = new YourClass(paramThatDoesntFit); // 如果YourClass只有一个无参构造,这里会出错 ``` 2. **缺少默认构造函数**:有些需要显式提供构造函数,如果没有提供默认构造函数(即没有`public YourClass()`),那么在创建对象时就需要明确指定参数。 ```java class RequiresParams { private String name; public RequiresParams(String name) { ... } // 缺少无参构造 } RequiresParams obj = new RequiresParams("example"); // 必须提供name参数 ``` 3. **静态工厂方法**:有时候使用static工厂方法代替构造函数可以避免这个问题。例如,`YourClass.createInstance(param)`。 4. **泛型类型转换限制**:如果你正在从父类型引用子类型,可能会遇到这种问题。除非进行了显式的类型转换,否则无法直接创建子的对象。 ```java List<ParentType> list = new ArrayList<>(); // 这里不能直接用子构造器,需要强制转换 SubClass subObj = (SubClass) list.get(0).new SubClass(); ``` 解决此问题的关键是检查并确保正确的构造函数被用于实例化对象。如果必要,可以添加适当的构造函数、工厂方法,或者做类型转换。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值