Lista genérica de desserialização do Dropwizard de JerseyClient

Eu queria implementar uma classe genérica para usar no cache de resultados de uma API REST em uma instância local do MongoDB. Para que isso funcione, preciso desserializar uma coleção que recebo do JerseyClient:

Response response = this.source.request().get();
List<T> list = response.readEntity( new GenericType<List<T>>() {} );

// ... do stuff with the list

Digamos que eu estou usando esse pedaço de código em um contexto deT relacionado a uma classeFoo. O mais estranho é que, depois doreadEntity ligar,list não é umList<Foo>, em vez disso, é umList<LinkedHashMap>. Como isso é possível, quando declaro claramente o GenéricoT ser estarFoo?

O que preciso fazer para obter uma solução adequada?List<T>, ou seja,List<Foo> em vez de?

Nota: Se eu remover o genérico e usar

List<Foo> list = response.readEntity( new GenericType<List<Foo>>() {} );

diretamente, em vez disso, funciona bem, mas eu realmente preciso que esse genérico esteja lá!

questionAnswers(1)

yourAnswerToTheQuestion