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
ExceptionInInitializerError
, SecurityException
, ClassNotFoundException
, NullPointerException
Clase Padre
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
Vídeos Java
Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.