public class InstanceByName { public static void main(String[] args) { //recuperation de l'instance //attention si la classe se trouve dans un package ne pas oublier //de mettre le chemin de la classe : //soit le package toto.tata //alors pour trouver la classe on doit mettre //getInstance("toto.tata.ClassInstance"); ClassInstance ci = (ClassInstance)getInstance("ClassInstance"); //petite verification System.out.println(ci);//ici on affiche la methode toString } public static Object getInstance(String name){ try { return Class.forName("ClassInstance").newInstance(); } catch (InstantiationException e) { System.err.println("Impossible d'instancer la classe"); } catch (IllegalAccessException e) { System.err.println("Impossible d'acceder au construteur (non visible)"); } catch (ClassNotFoundException e) { System.err.println("Impossible de trouver la classe"); } return null; } } //la classe a instancier class ClassInstance{ public ClassInstance(){ System.out.println("new instrance"); } public String toString(){ return "ClassInstance@" + hashCode();//pour afficher quelque chose } }
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.