我有以下休息模板(用于服务器的json请求):
public RestTemplate createRestTemplate() {
RestTemplate restTemplate = new RestTemplate();
GsonBuilder builder = new GsonBuilder();
builder.registerTypeAdapter(Image.class, new ImageDeserializer());
builder.registerTypeAdapter(MetaData.class, new MetaDataDeserializer());
builder.registerTypeAdapter(Vector.class, new VectorsDeserializer());
GsonHttpMessageConverter jsonConverter = new GsonHttpMessageConverter();
jsonConverter.setGson(builder.create());
FormHttpMessageConverter formHttpMessageConverter = new FormHttpMessageConverter();
StringHttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter();
final List<HttpMessageConverter<?>> listHttpMessageConverters = restTemplate.getMessageConverters();
listHttpMessageConverters.add(jsonConverter);
listHttpMessageConverters.add(formHttpMessageConverter);
listHttpMessageConverters.add(stringHttpMessageConverter);
restTemplate.setMessageConverters(listHttpMessageConverters);
return restTemplate;
}
由于某种原因,对解串器VectorsDeserializer
的第三次registerTypeAdapter调用什么都不做。我可能在这里遗漏了一些东西,非常欢迎任何想法/澄清。
答案 0 :(得分:3)
我假设你正在使用java.util.Vector
。
我猜,这是因为使用普通Vector.class
代替
new TypeToken<Vector<Whatever>>() {}.getType()
在注册中。