Executer class java par son nom string

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. 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
    1. Modérateur
      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
      1. 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
        1. Contributeur
          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
          1. comment je peut executer une class jave a partir de son nom?
            svp aidez moi
            0
            1. Modérateur
              je comprends pas très bien ta question ... sorry
              0
              1. 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
                1. Modérateur
                  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