Lombok停止
@ConstructorProperties在版本1.16.20的构造函数上生成(请参阅changelog),因为它可能会破坏使用模块的Java
9+应用程序。该注释包含构造函数参数的名称(编译类时将其删除,因此这是一种变通方法,以便仍可以在运行时检索参数名称)。因为默认情况下现在不生成注释,所以Jackson无法将字段名称映射到构造函数参数。
解决方案1: 使用
@NoArgsConstructor和
@Setter,但是您会失去不变性(如果这对您很重要)。
更新: Just
@NoArgsConstructor和
@Getter(不带
@Setter)也可能会起作用(因为
INFER_PROPERTY_MUTATORS=true)。这样,您可以使类至少从常规(非反射)代码中保持不变。
解决方案2:
使用
lombok.config包含line
的文件
,将
lombok配置为再次生成注释
lombok.anyConstructor.addConstructorProperties =true。(如果使用模块,请确保
java.desktop位于模块路径上。)



