java.lang.IllegalArgumentException:无法识别的类型:杰克逊中的 [null]
Posted
技术标签:
【中文标题】java.lang.IllegalArgumentException:无法识别的类型:杰克逊中的 [null]【英文标题】:java.lang.IllegalArgumentException: Unrecognized Type: [null] in Jackson 【发布时间】:2021-08-19 01:05:10 【问题描述】:这是我有这个错误的方法
private <T> Mono<CarbonResponse<T>> evaluateVersion(Key key, String facts, boolean showTestResults)
return mapper.readValue(result, new TypeReference<CarbonResponse<T>>() ); // error here
结果是 JSON 字符串。
我的 CarbonResponse.java
public class CarbonResponse<T>
int code;
String message;
DataV1<T> data;
DataV1.java
public class DataV1<T>
@JsonProperty(value = "rule_set_id")
String ruleSetId;
@JsonProperty(value = "version_id")
String ruleSetVersionId;
T result;
@JsonProperty(value = "rules_evaluation_response")
List<T> rulesEvaluationResponse;
分级
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.10.3'
// https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core
implementation group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.10.3'
完整的错误跟踪
java.lang.IllegalArgumentException:无法识别的类型:[null] 在 com.fasterxml.jackson.databind.type.TypeFactory._fromAny(TypeFactory.java:1266) 在 com.fasterxml.jackson.databind.type.TypeFactory._fromParamType(TypeFactory.java:1480) 在 com.fasterxml.jackson.databind.type.TypeFactory._fromAny(TypeFactory.java:1250) 在 com.fasterxml.jackson.databind.type.TypeFactory.constructType(TypeFactory.java:670) 在 com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3197) 在 com.pharmeasy.carbon.client.CarbonClient.lambda$evaluateVersion$0(CarbonClient.java:321) 在 reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:100) 在 reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1705) 在 reactor.core.publisher.MonoZip$ZipCoordinator.signal(MonoZip.java:247) 在 reactor.core.publisher.MonoZip$ZipInner.onNext(MonoZip.java:329)
我能知道我在这里缺少什么吗?
编辑
当我们有 T 时,我认为 new TypeReference<CarbonResponse<T>>()
会给出 null,但我无法找出解决方案。
【问题讨论】:
添加评论,因为它可能会出现,请 你能找到任何解决方案吗? @user3247895 是的,必须在这里和那里进行一些更改才能使其正常工作 【参考方案1】:你可以使用
Mono<CarbonResponse<Void>>
new TypeReference<CarbonResponse<Void>
【讨论】:
最好解释这个问题的原因,然后提出解决方案。以上是关于java.lang.IllegalArgumentException:无法识别的类型:杰克逊中的 [null]的主要内容,如果未能解决你的问题,请参考以下文章