저는 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
컴파일러 경고가 생성됩니다.
내 질문에 간단합니다. 내가 컴파일러 경고를 억제하거나 붙어 있나이 코드를 청소기 방법이 무엇입니까? 당신은 사용하여 달성 할 수
Jackson은 classpath에 있고, Spring 3.x는 자동적으로 그것을 사용하여 스트림을 마샬링/언 마샬링합니다. 저에게 유리하게 활용하고 싶었지만 낮은 수준에서이 작업을 수행해야합니다. Spring이 다른 템플릿 클래스와 마찬가지로 Collection 반환을 처리하는 쉬운 방법을 제공하지 않았다는 것에 놀랐습니다. –
이 방법은 세부 조정과 함께 작동합니다. RestTemplate.getForObject()를 사용하는 대신 RestTemplate.execute()를 사용하고 자체 ResponseExtractor를 제공합니다. 이것은 개념 증명을 통해 나를 얻지 만 서버에서 응답 유형을 결정하는 더 영리한 방법이 있다고 생각합니다. 지금 당장 JSON을 사용하고 있지만 XML을 지원해야 할 필요가 있습니다. 방향 주셔서 감사합니다! –