Class.forName() | Java

 

Descripción

El método .forName() de la clase Class en Java es un método que nos permite cargar una clase en tiempo de ejecución utilizando su nombre completamente cualificado. Este método es especialmente útil cuando necesitamos cargar clases de forma dinámica, por ejemplo, al trabajar con controladores de bases de datos o plugins.

Es importante tener en cuenta que este método puede lanzar una excepción ClassNotFoundException si la clase especificada no se encuentra en el classpath.

Lanzará una excepción ExceptionInInitializerError si hay un error durante la inicialización de la clase. Esto puede ocurrir si hay problemas con los bloques estáticos o la inicialización de variables estáticas de la clase que se está intentando cargar. También lanzará una excepción SecurityException si no se tienen los permisos necesarios para acceder a la clase.

Por último, podrá lanzar una excepción NullPointerException si el nombre de la clase proporcionado como parámetro es nulo. Esto puede ocurrir cuando se pasa un valor null como argumento al método.

Sintaxis

public static Class<?> forName(Module module, String name)
public static Class<?> forName(String className) throws ClassNotFoundException
public static Class<?> forName(String name, boolean initialize, ClassLoader loader) throws ClassNotFoundException

Parámetros

  • String name, el nombre completamente cualificado de la clase que se desea cargar. Debe incluir el paquete completo.
  • ClassLoader loader, el cargador de clases que se utilizará para cargar la clase especificada. Si es null, se utilizará el cargador de clases del sistema.
  • boolean initialize, indica si la clase debe ser inicializada (true) o no (false) después de cargarla. La inicialización incluye la ejecución de bloques estáticos.
  • Module module, el módulo que contiene la clase que se desea cargar. Este parámetro es especialmente relevante en el sistema de módulos de Java.
  • String className, nombre alternativo para especificar la clase a cargar, similar al parámetro name pero usado en algunas sobrecargas específicas del método.

Excepciones

ExceptionInInitializerErrorSecurityExceptionClassNotFoundExceptionNullPointerException

Clase Padre

Class

Ejemplo

Un ejemplo común del uso de Class.forName() es cuando se carga un controlador JDBC para conectar con una base de datos:

try {
    // Cargar el controlador JDBC de MySQL
    Class.forName("com.mysql.cj.jdbc.Driver");
    System.out.println("Controlador cargado exitosamente");
} catch (ClassNotFoundException e) {
    System.out.println("Error al cargar el controlador: " + e.getMessage());
}

Artículos

Manual Java

Aprende más sobre Java consultando online o descargando nuestro manual.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Vídeos Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.