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:
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public Object getParameter(String key) { String serializedParameter = req.getParameter(key); return SerialisationUtil.deserialized(serializedParameter); }
Mais je me suis rendu compte que pour les Collections, c'était plus compliqué:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
Mon intérêt serait que la première liste ne produise pas de Warning ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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());
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
Partager