1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| public class MyFactoryClass {
public static MClasse createAClass(String name) {
try {
// On récupère le type par son nom via la reflection :
Class<?> type = Class.forName(name);
// Puis on retournes une nouvelle instance
// (la classe doit posséder un constructeur vide)
return (MClasse) type.newInstance();
} catch (Exception e) {
// Si une exception survient, cela signifie
// que l'on n'a pas utilisé le bon type en paramètre
// ou qu'il n'implémente pas MClasse
throw new IllegalArgumentException(name, e);
}
}
} |
Partager