cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 2014
-
1 avril 2008 à 10:55
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 2014
-
1 avril 2008 à 11:44
Salut,
Je veux remplir une table avec des données provenant de plusieurs tables dont les types correspondants descendent tous de la même classe.
Class Fruit{}
Class Pomme extends Fruit {}
Class Poire extends Fruit {}
etc.
public setData(String className) {
try{
Class<?> fruitClass = Class.forName(className);
try{
Method method=fruitClass.getDeclaredMethod("getAll", new Class[] {String.class, String.class});
if (method != null) {
Object fruits = method.invoke(null, new Object[] {"hostname", "dbname"}); // null, il s'agit d'une méthode static
List<fruitClass> fruitsList = (List<fruitClass>) fruits; // ça ne passe pas
this.tableViewer.add(fruitsList);
}
}
catch(SecurityException e){}
catch(NoSuchMethodException e){}
catch(IllegalArgumentException e){}
catch(IllegalAccessException e){}
catch(InvocationTargetException e){}
} catch(ClassNotFoundException e){}
}
Comment puis-je transtyper l'object de retour d'invoke, en une liste de type List<? extends Fruit>, dont je connais le type (Class.forName) ?