Méthode Class forName(String, boolean, ClassLoader) en Java avec des exemples

Afficher la discussion

Améliorer l’article

Enregistrer l’article

J’aime l’article

Afficher la discussion

Améliorer l’article

Enregistrer l’article

J’aime l’article

La forName(String, boolean, ClassLoader) méthode de classe java.lang.Class est utilisé pour obtenir l’instance de cette classe avec le nom de classe spécifié, en utilisant le chargeur de classe spécifié. La classe est initialisée uniquement si le paramètre initialize est vrai et si elle n’a pas été initialisée plus tôt.
Syntaxe:

public static Class<T>
 forName(String className, 
         boolean initialize, 
         ClassLoader classLoader) 
 throws ClassNotFoundException

Paramètre: Cette méthode accepte les paramètres suivants :

  • nom du cours qui est la classe pour laquelle son instance est requise.
  • initialiser qui est le booléen pour indiquer si cette instance de classe doit être initialisée ou non.
  • chargeur de classe qui est le ClassLoader à partir duquel cette classe doit être chargée.

Valeur de retour : Cette méthode renvoie l’instance de cette classe récupérée à l’aide des paramètres spécifiés.
Exception: Cette méthode lève les exceptions suivantes :

  • Erreur de liaison : si la liaison échoue
  • Erreur d’exception dans l’initialisation : si l’initialisation provoquée par cette méthode échoue
  • Exception ClassNotFound : si la classe est introuvable
  • Exception de sécurité: si un gestionnaire de sécurité est présent, et le chargeur est nul, et le chargeur de classe de l’appelant n’est pas nul, et l’appelant n’a pas le RuntimePermission(“getClassLoader”)

Les programmes ci-dessous illustrent la méthode forName().
Exemple 1:

Java

public class Test {

    public static void main(String[] args)

        throws ClassNotFoundException

    {

        

        Class myClass = Class.forName("Test");

        ClassLoader loader = myClass.getClassLoader();

        

        Class c1

            = Class.forName("java.lang.String",

                            true,

                            loader);

        System.out.print("Class represented by c1: "

                         + c1.toString());

    }

}

Production:

Class represented by c1: class java.lang.String

Exemple 2 :

Java

public class Test {

    public static void main(String[] args)

        throws ClassNotFoundException

    {

        

        Class myClass = Class.forName("Test");

        ClassLoader loader = myClass.getClassLoader();

        

        Class c1

            = Class.forName("java.lang.Integer",

                            false,

                            loader);

        System.out.print("Class represented by c1: "

                         + c1.toString());

    }

}

Production:

Class represented by c1: class java.lang.Integer

Référence: https://docs.oracle.com/javase/9/docs/api/java/lang/Class.html#forName-java.lang.String-boolean-java.lang.ClassLoader-

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *