obtenir un ParameterizedType bien précis
Bonjour,
je cherche à obtenir un ParameterizedType bien précis en java, celui correspondant soit à
HashMap<String,Map<String,String>> soit à Map<String,Map<String,String>>, sans préférence de l'un ou l'autre, car j'utilise un api JSON qui se base là dessus pour savoir quelle hierarchie d'objets elle doit créer.
Pour le moment j'utilise la solution suivante:
Code:
1 2 3 4
|
public static class myMap extends HashMap<String, Map<String,String>>{};
//....
ParameterizedType type = (ParameterizedType)myMap.class.getGenericSuperclass(); |
Mais je trouve assez moch de devoir créer une classe qui ne sera jamais instanciée juste pour ça. Le pendant avec interface étant encore pire:
Code:
1 2 3 4
|
public static abstract class myMap2 implements Map<String, Map<String,String>>{};
//.....
ParameterizedType type = (ParameterizedType)myMap2.class.getGenericInterfaces()[0] |
J'avais aussi la possibilité d'implémenter ParameterizedType moi même, mais ce serait encore plus catastrophique :aie: (mais au moins ce seraient pas des classes jamais instanciées)
Alors, est-ce qu'en java il n'y a pas une méthode plus simple que j'aurais ratée? :aie:
quelquechose dans ce goût là, par exemple
Code:
1 2 3 4 5 6
| ParameterizedType type = new PType(Map.class)
.setType(0,String.class)
.setType(1,new PType(Map.class)
.setType(0,String)
.setType(1,String)
); |