Я использую Spring RestTemplate
для совершения звонков с веб-службы REST. Один из этих вызовов - вернуть список объектов определенного типа. Для методов RestTemplate
требуется указать аргумент класса для указания ожидаемого типа возвращаемого значения.Как избежать предупреждений компилятора, когда информация о типовом типе недоступна?
// restTemplate is type org.springframework.web.client.RestTemplate
URI restServiceURI = new URI("http://example.com/foo")
restTemplate.getForObject(restServiceURI, List<Foo>.class);
Очевидно, что это не скомпилировано. Вы не можете получить статическое свойство .class
, когда вы предоставляете такой аргумент типа. Код компилируется, когда я удаляю аргумент типа, но генерирует предупреждение компилятора rawtypes
.
Мой вопрос прост. Я застрял в подавлении предупреждения компилятора или есть более чистый способ кодирования для этого?
Джексон находится в пути к классам, а Spring 3.x использует его автоматически для сортировки/отмены маршрута этих потоков. Я надеялся использовать это для себя, но, похоже, мне нужно сделать это на более низком уровне. Я просто удивлен тем, что Spring не предоставил простой способ обработки возвратов коллекции, как это происходит с другими классами шаблонов. –
Этот метод работает с уточнением. Вместо использования RestTemplate.getForObject() я использую RestTemplate.execute() и предоставляю свой собственный ResponseExtractor. Это дает мне доказательство концепции, но я бы предположил, что есть более умный способ определить тип ответа с сервера. Прямо сейчас я предполагаю JSON, но мне нужно будет поддерживать XML в какой-то момент. Спасибо за направление! –