À l'aide de Printemps RestTemplate au générique de la méthode avec un paramètre générique

Utilisation de types génériques avec le Printemps RestTemplate nous avons besoin d'utiliser ParameterizedTypeReference (Impossible d'obtenir un générique ResponseEntity<T> où T est une classe générique "SomeClass<SomeGenericType>")

Supposons que j'ai un peu de classe

public class MyClass {
    int users[];

    public int[] getUsers() { return users; }
    public void setUsers(int[] users) {this.users = users;}
}

Et certaines classe wrapper

public class ResponseWrapper <T> {
    T response;

    public T getResponse () { return response; }
    public void setResponse(T response) {this.response = response;}
}

Donc, si je suis en train de faire quelque chose comme cela, tout est OK.

public ResponseWrapper<MyClass> makeRequest(URI uri) {
    ResponseEntity<ResponseWrapper<MyClass>> response = template.exchange(
        uri,
        HttpMethod.POST,
        null,
        new ParameterizedTypeReference<ResponseWrapper<MyClass>>() {});
    return response;
}

Mais quand j'essaie de créer des génériques variante de la méthode ci-dessus ...

public <T> ResponseWrapper<T> makeRequest(URI uri, Class<T> clazz) {
   ResponseEntity<ResponseWrapper<T>> response = template.exchange(
        uri,
        HttpMethod.POST,
        null,
        new ParameterizedTypeReference<ResponseWrapper<T>>() {});
    return response;
}

... et l'appel de cette méthode comme si ...

makeRequest(uri, MyClass.class)

... au lieu de se ResponseEntity<ResponseWrapper<MyClass>> objet que je suis ResponseEntity<ResponseWrapper<LinkedHashSet>> objet.

Comment puis-je résoudre ce problème? Est-il un RestTemplate bug?

Mise à JOUR de 1
Grâce à @Sotirios je comprends le concept. Malheureusement, je suis nouvellement inscrit ici donc je ne peux pas commenter sa réponse, donc de l'écrire ici. Je ne suis pas sûr que j'ai bien compris comment mettre en œuvre l'approche proposée pour résoudre mon problème avec Map avec Class clé (Proposé par @Sotirios à la fin de sa réponse). Quelqu'un aurait l'esprit pour donner un exemple?

  • Vous devriez toujours être en mesure de commenter sur les réponses à vos questions. La solution proposée fonctionne comme ceci. Vous créez un Map<Class, ParameterizedTypeReference<ResponseWrapper<?>>>. Vous ajoutez pré-construits ParameterizedTypeReference cas pour les types réels que vous vous attendez à la Map pour le correspondant Class.
  • Pouvez-vous reformuler pour quelqu'un qui est nouveau pour le Java? Je suis venue à partir d'un C# arrière-plan, de sorte que cela a été très intéressant pour moi.