Executer class java par son nom string

MallouH Messages postés 1 Statut Membre -  
 Jres -
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

  1. Jres
     
    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
  2. choubaka Messages postés 5534 Date d'inscription   Statut Modérateur Dernière intervention   2 113
     
    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
  3. MallouH
     
    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
  4. choubaka Messages postés 5534 Date d'inscription   Statut Modérateur Dernière intervention   2 113
     
    je comprends pas très bien ta question ... sorry
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. MallouH
     
    comment je peut executer une class jave a partir de son nom?
    svp aidez moi
    0
  7. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    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
  8. MallouH
     
    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
  9. choubaka Messages postés 5534 Date d'inscription   Statut Modérateur Dernière intervention   2 113
     
    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