gpt4 book ai didi

java - Jackson 解析器到 Java 对象

转载 作者:行者123 更新时间:2023-11-30 08:19:05 25 4
gpt4 key购买 nike

我正在使用 Jackson 来解析对象。有时我需要对象列表。

当我这样使用时,它就可以工作

 List<MyObject> mapper.readValue(file , new TypeReference<MyObject>() {})

但是当我像这样使用它时它不起作用

public class JsonMocksRepository<T>{

public T getObject() throws Exception{

return mapper.readValue(file ,new TypeReference<T>());
}
}

我需要做什么?基本上我想使用泛型来获得正确的类

最佳答案

这是因为类型删除。没有关于运行时 T 所表示的实际类型的信息,因此您的 TypeReference实际上将是简单的TypeReference<Object> .

如果您想要 JsonMocksRepository 的通用实例,您需要注入(inject)TypeReference施工时:

public class JsonMocksRepository<T>{
private final TypeReference<T> typeRef;

public JsonMocksRepository(TypeReference<T> typeRef) {
this.typeRef = typeRef;
}

public T getObject() throws Exception{
return mapper.readValue(file, typeRef);
}
}

关于java - Jackson 解析器到 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29227394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com