我在库中使用 spring RestTemplate。库方法的输入接受 aParameterizedTypeRecerence并将其传递给剩余模板进行转换。
由于不相关的原因,我需要将响应正文获取为 byte[] 并使用 Jackson 手动转换为 json。杰克逊希望有一个TypeReference类来完成转换。
我正在寻找一种将它们转换为类的方法。
var*_*ren 10
可以使用辅助类
public class CustomTypeReference extends TypeReference<Object>{
private final Type type;
public CustomTypeReference(ParameterizedTypeReference pt){
this.type = pt.getType();
}
@Override
public Type getType() {
return type;
}
}
Run Code Online (Sandbox Code Playgroud)
并像这样使用它:
ParameterizedTypeReference<List<String>> typeRef
= new ParameterizedTypeReference<List<String>>() {};
TypeReference tr = new CustomTypeReference(typeRef);
ObjectMapper mapper = new ObjectMapper();
String jsonStr = "[\"key\", \"someStr\"]";
List<String> data = mapper.readValue(jsonStr, tr);
Run Code Online (Sandbox Code Playgroud)
或者只是匿名TypeReference<Object>
ParameterizedTypeReference<List<String>> typeRef
= new ParameterizedTypeReference<List<String>>() {};
TypeReference tr = new TypeReference<Object>(){
public Type getType() {
return typeRef.getType();
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9252 次 |
| 最近记录: |