Método Class forName (String, boolean, ClassLoader) en Java con ejemplos

El método forName(String, boolean, ClassLoader) de la clase java.lang.Class se usa para obtener la instancia de esta clase con el nombre de clase especificado, usando el cargador de clases especificado. La clase se inicializa solo si el parámetro de inicialización es verdadero y si no se ha inicializado antes.
Sintaxis: 
 

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

Parámetro: Este método acepta los siguientes parámetros: 
 

  • className que es la clase para la que se requiere su instancia.
  • initialize , que es el valor booleano para indicar si esta instancia de clase debe inicializarse o no.
  • classLoader, que es el ClassLoader desde el que se debe cargar esta clase.

Valor de retorno: este método devuelve la instancia de esta clase obtenida utilizando los parámetros especificados.
Excepción: este método arroja las siguientes excepciones: 
 

  • LinkageError: si falla el enlace
  • ExceptionInInitializerError: si la inicialización provocada por este método falla
  • ClassNotFoundException: si la clase no se puede localizar
  • SecurityException: si un administrador de seguridad está presente, y el cargador es nulo, y el cargador de clases de la persona que llama no es nulo, y la persona que llama no tiene RuntimePermission («getClassLoader»)

Los siguientes programas muestran el método forName().
Ejemplo 1:
 

Java

// Java program to demonstrate forName() method
 
public class Test {
    public static void main(String[] args)
        throws ClassNotFoundException
    {
 
        // returns the Class object for this class
        Class myClass = Class.forName("Test");
 
        ClassLoader loader = myClass.getClassLoader();
 
        // get the Class instance using forName method
        Class c1
            = Class.forName("java.lang.String",
                            true,
                            loader);
 
        System.out.print("Class represented by c1: "
                         + c1.toString());
    }
}
Producción: 

Class represented by c1: class java.lang.String

 

Ejemplo 2:
 

Java

// Java program to demonstrate forName() method
 
public class Test {
    public static void main(String[] args)
        throws ClassNotFoundException
    {
 
        // returns the Class object for this class
        Class myClass = Class.forName("Test");
 
        ClassLoader loader = myClass.getClassLoader();
 
        // get the Class instance using forName method
        Class c1
            = Class.forName("java.lang.Integer",
                            false,
                            loader);
 
        System.out.print("Class represented by c1: "
                         + c1.toString());
    }
}
Producción: 

Class represented by c1: class java.lang.Integer

 

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

Publicación traducida automáticamente

Artículo escrito por srinam y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *