Methode retournant une list utilisant les generics
Bonjour,
Pour les besoins de mon application, j'ai créé une méthode qui me permet de récupérer des paramètres qui ont été sérialisés et de les retourner:
Code:
1 2 3 4 5
|
public Object getParameter(String key) {
String serializedParameter = req.getParameter(key);
return SerialisationUtil.deserialized(serializedParameter);
} |
J'ai voulu par la suite faire mumuse avec les generics et ai obtenu une méthode me permettant de retourner l'objet deserialisé avec le bon type:
Code:
1 2 3 4 5 6 7
|
public <T> T getParameter(String key, Class<T> clazz) {
String serializedParameter = req.getParameter(key);
Object o = SerialisationUtil.deserialized(serializedParameter);
return clazz.cast(o);
} |
Mais je me suis rendu compte que pour les Collections, c'était plus compliqué:
Code:
1 2 3 4 5 6 7
|
List<String> listTemplate = new ArrayList<String>();
// Warning, doit spécifier Suppress("Unchecked")
List<String> firstList = getParameter("firstKey", listTemplate.getClass());
// Pas de Warning
List<?> secondtList = getParameter("secondKey", listTemplate.getClass()); |
Mon intérêt serait que la première liste ne produise pas de Warning ...
J'ai essayé pas mal de chose, sans jamais vraiment comprendre pourquoi ca ne fonctionnait pas (et au bout d'un moment sans vraiment comprendre ce que je faisais non plus :p). Quelqu'un pourrait-il m'aider? Est-ce possible?
Mohicane