Executer class java par son nom string

Fermé
MallouH Messages postés 1 Date d'inscription vendredi 24 août 2007 Statut Membre Dernière intervention 24 août 2007 - 24 août 2007 à 00:53
 Jres - 28 août 2007 à 18:24
Salut
J'ai un probleme. s v p aidez moi a le resoudre. je veus executer une classe a partir d'une variable string qui porte son nom. comment faire?
plus de detail si je met par exemple : nomclass a = new nomclass(); ca marche
mais mois je veus executer cette class a partir de la variable par exemple "laclass" declarée comme suit:
String laclass = "nomclass";
je veus ecrire : laclass a = naw laclass();
mais ca ne marche pas car laclass est string non class
j'espere que j'etais claire
j'attend votre reponse
merci

8 réponses

Bonsoir,

String className= "Test";
Class myClass = Class.forName( className );
Test myTestInstance= (Test) myClass.newInstance();

N'hésite pas à utiliser l'API, elle est là pour ça.
2
choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 2 100
24 août 2007 à 07:47
Salut

tu dois utiliser la méthode statique "forName" de la classe "Class"

forName
public static Class forName(String className)
                     throws ClassNotFoundExceptionReturns the Class object associated with the class or interface with the given string name. Invoking this method is equivalent to: 
  Class.forName(className, true, currentLoader)
 where currentLoader denotes the defining class loader of the current class. 
For example, the following code fragment returns the runtime Class descriptor for the class named java.lang.Thread: 

   Class t = Class.forName("java.lang.Thread")
 A call to forName("X") causes the class named X to be initialized. 


Parameters:
className - the fully qualified name of the desired class. 
Returns:
the Class object for the class with the specified name. 
Throws: 
LinkageError - if the linkage fails 
ExceptionInInitializerError - if the initialization provoked by this method fails 
ClassNotFoundException - if the class cannot be located
0
salut,
merci pour la reponse mais j'ai pas encors resolut mon pb. En effet lorsque j'execute par exemle
Class t = Class.forName("ex.monclass");
ca ne me permet pas d'executer cette class (monclass)
et l'orsque j'affiche le contenue de t il m'afiche ( class ex.monclass)
an outre c quoi l'equivalent de l' instruction ( monclass n = new monclass();)
en utilisant une variable
string var = "monclass";
merci encors
0
choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 2 100
24 août 2007 à 19:09
je comprends pas très bien ta question ... sorry
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
comment je peut executer une class jave a partir de son nom?
svp aidez moi
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
24 août 2007 à 20:46
En même temps :

Class t = Class.forName("ex.monclass");
ca ne me permet pas d'executer cette class (monclass)

Si tu donnes ex.monclass en entrée en voulant exécuter monclass, normal que cela ne fonctionne pas...
0
si c normal qui ne fonctionne pas avec Class t = Class.forName("ex.monclass"); et c logique
alors comment il peut fonctionner ?
svp aider moi
0
choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 2 100
27 août 2007 à 08:56
ton string doit contenir le nom exacte de ta classe ... le "ex." est de trop

si "ex" est le package qui contient ta classe, il suffit de créer un import

0