Comment puis-je faire fonctionner ce genre de chose? Je peux vérifier si (obj instanceof List<?>)
mais pas si (obj instanceof List<MyType>)
. Y a-t-il un moyen de le faire?
Réponses
Trop de publicités?Ce n'est pas possible car le type de données s'efface au moment de la compilation des génériques. La seule façon possible de le faire est d'écrire une sorte de wrapper qui contient le type de la liste :
public class GenericList <T> extends ArrayList<T>
{
private Class<T> genericType;
public GenericList(Class<T> c)
{
this.genericType = c;
}
public Class<T> getGenericType()
{
return genericType;
}
}
Sats
Points
753
Ivo Stoyanov
Points
91
evanwong
Points
2394
Vous devrez probablement utiliser la réflexion pour en vérifier les types. Pour obtenir le type de la liste : Obtenir le type générique de java.util.List
dlaagniechy
Points
71