java - lombok & jackson 不能与 openjdk12 一起工作
问题描述
可在此处重现:
我曾经有 java 8.x 一切正常。都打开jdk和Oracle。
升级 JDK & 和 Oracle JDK 后,我从jackson
.
Error:(10, 1) java: constructor ClientResponseData in class my.response.ClientResponseData cannot be applied to given types;
required: no arguments
found: java.lang.String,java.lang.String
reason: actual and formal argument lists differ in length
我的 ClientResponseData 定义如下:
@JacksonXmlRootElement(localName = "ClientResponseData")
@Builder
@Getter
public class ClientResponseData {
@JacksonXmlProperty(localName = "responseCode")
private String responseCode;
@JacksonXmlProperty(localName = "number")
private String number;
}
在 java 更新之前对我有用的依赖项:
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.9.8</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>provided</scope>
</dependency>
在 pom.xml 中,我仍然使用:<java.version>1.8</java.version>
在 java uprade 之后,我必须至少将 Lombok 更新到最新版本:1.18.8
然后我开始有问题。
Error:(10, 1) java: constructor ClientResponseData in class my.response.ClientResponseData cannot be applied to given types;
required: no arguments
found: java.lang.String,java.lang.String
reason: actual and formal argument lists differ in length
它失败了:
return new com.fasterxml.jackson.dataformat.xml.XmlMapper().readValue(xmlString, cls);
任何线索如何使它工作?
我试过了:
添加@NoArgsConstructor - 不
将杰克逊更新到最新版本 - 不
解决方案
我发现 @AllArgsConstructor和public ClientResponseData() {} 的组合是一个技巧,它开始工作。
(我不需要使用 java 8,但对于 java11、12,这是我可以使它工作的唯一方法)
@JacksonXmlRootElement(localName = "ClientResponseData")
@Builder
@Getter
@AllArgsConstructor
@ToString
public class ClientResponseData {
public ClientResponseData() {}
@JacksonXmlProperty(localName = "responseCode")
private String responseCode;
@JacksonXmlProperty(localName = "number")
private String number;
}
如果有更好的解决方案,请告诉我!
还:
@AllArgsConstructor + @NoArgsConstructor
也有诡计。
推荐阅读
- javascript - 如何修复 _this.video 未定义
- gis - 从 NetLogo 中的栅格数据分配补丁值
- python-3.x - 有没有办法跟踪函数在 n 秒内被调用的次数?
- raspberry-pi - 未能加载提供程序 SiloedPackageProvider.dll 和 metaDeployProvider.dll
- julia - Julialang:在抽象类型上强制执行接口
- linux - 触发 IRQ 处理程序后如何写入文件?
- java - Cassandra 是否有可能返回不一致的值?
- optaplanner - ReflectionHelper::assertGetterMethod() 与构造启发式要求冲突
- python-3.x - 如何附加文本格式的文件中存在的列表?
- c# - 收到来自 API 的不带括号的 json 数组响应