abk.core.util
Class ClassUtils

java.lang.Object
  extended by abk.core.util.ClassUtils

public final class ClassUtils
extends Object

Métodos estáticos de utilidad para trabajar con clases.


Constructor Summary
private ClassUtils()
          Impide la creación de instancias de ClassUtils.
 
Method Summary
static
<T> T
createObject(Class<T> clazz)
          Crea una nueva instancia lanzando una excepción NotImplementedException para encapsular cualquier excepción controlada durante la invocación del constructor.
static
<T> T
createObject(String className, Class<T> type)
          Crea una nueva instancia de una clase, cargando a esta última desde el ClassLoader del hilo y verificando que implementa o extiende el tipo de clase que se le pasa.
static
<T> T
createObject(String className, Class<T> type, ClassLoader cl)
          Crea una nueva instancia de una clase, cargando a esta última desde el ClassLoader especificado y verificando que implementa o extiende el tipo de clase que se le pasa.
static Class<?> forName(String className)
          Carga una clase usando el ClassLoader del contexto del hilo, o bien desde Class.forName(String) si el anterior es nulo.
static
<T> Constructor<T>
getConstructor(Class<T> type, Class<?>... classes)
          Devuelve el constructor de un objeto para una especificación de argumentos dada, encapsulando la excepción NoSuchMethodException como IllegalArgumentException.
static ClassLoader getContextClassLoader()
          Devuelve el ClassLoader por defecto, que será el del hilo actual.
static String getName(Class<?> clazz)
          Invoca al método Class.getName() de una clase salvo que ésta sea nula, en cuyo caso devuelve el valor StringUtils.EMPTY.
static String getName(Class<?> clazz, String nullValue)
          Invoca al método Class.getName() de una clase salvo que ésta sea nula, en cuyo caso devuelve el valor por defecto que se le pasa.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ClassUtils

private ClassUtils()
Impide la creación de instancias de ClassUtils.

Method Detail

getName

public static final String getName(Class<?> clazz,
                                   String nullValue)
Invoca al método Class.getName() de una clase salvo que ésta sea nula, en cuyo caso devuelve el valor por defecto que se le pasa.

Parameters:
clazz - Clase para la que se invoca el método.
nullValue - Nombre a devolver si la clase clazz es nula.
Returns:
Nombre de clase resultante de la operación.

getName

public static final String getName(Class<?> clazz)
Invoca al método Class.getName() de una clase salvo que ésta sea nula, en cuyo caso devuelve el valor StringUtils.EMPTY.

Parameters:
clazz - Clase para la que se invoca el método.
See Also:
getName(Class, String)

getContextClassLoader

public static final ClassLoader getContextClassLoader()
Devuelve el ClassLoader por defecto, que será el del hilo actual.

Returns:
El ClassLoader del hilo actual.

forName

public static final Class<?> forName(String className)
                              throws ClassNotFoundException
Carga una clase usando el ClassLoader del contexto del hilo, o bien desde Class.forName(String) si el anterior es nulo.

Parameters:
className - Nombre completo de la clase.
Returns:
Instancia de la clase que se la ha pedido.
Throws:
ClassNotFoundException - si no se encuentra la clase pedida.
IllegalArgumentException - si className está vacío.
NullArgumentException - si className es nulo.
See Also:
getContextClassLoader(), Class.forName(String, boolean, ClassLoader)

createObject

public static <T> T createObject(Class<T> clazz)
Crea una nueva instancia lanzando una excepción NotImplementedException para encapsular cualquier excepción controlada durante la invocación del constructor.

Type Parameters:
T - Tipo del objeto a crear.
Parameters:
clazz - Clase con la que crear un nuevo objeto.
Returns:
Objeto creado, que no puede ser null.
Throws:
NotImplementedException - si se recibe alguna excepción de tipo InstantiationException o IllegalAccessException. Por ejemplo, si:
  • La clase o su constructor vacío no son accesibles.
  • La clase es abstracta, es una interfaz o se corresponde a un tipo primitivo.
NullPointerException - si clazz es null.
SecurityException - si Class.newInstance() la lanza.
ExceptionInInitializerError - si Class.newInstance() la lanza.
See Also:
IllegalAccessException, InstantiationException

createObject

public static <T> T createObject(String className,
                                 Class<T> type)
                      throws ClassNotFoundException
Crea una nueva instancia de una clase, cargando a esta última desde el ClassLoader del hilo y verificando que implementa o extiende el tipo de clase que se le pasa.

Type Parameters:
T - Tipo de dato que es implementado o extendido por la clase designada mediante className.
Parameters:
className - Nombre de una clase que extiende o implementa T y a cuyo constructor por defecto instanciaremos.
type - Clase que representa el tipo de dato del objeto que queremos instanciar.
Returns:
Objeto instanciado.
Throws:
ClassNotFoundException - si la clase indicada en className no se encuentra.
EmptyArgumentException - si className es una cadena vacía.
ExceptionInInitializerError - si Class.forName() o createObject(Class) la lanzan.
IllegalClassException - si la clase className no extiende o implementa T.
NotImplementedException - si se recibe alguna excepción de tipo InstantiationException o IllegalAccessException. Por ejemplo, si:
  • La clase o su constructor vacío no son accesibles.
  • La clase es abstracta, es una interfaz o se corresponde a un tipo primitivo.
NullArgumentException - si type o className son nulos.
SecurityException - si createObject(Class) la lanza.
See Also:
Class.forName(String,boolean, ClassLoader), getContextClassLoader(), IllegalAccessException, InstantiationException

createObject

public static <T> T createObject(String className,
                                 Class<T> type,
                                 ClassLoader cl)
                      throws ClassNotFoundException
Crea una nueva instancia de una clase, cargando a esta última desde el ClassLoader especificado y verificando que implementa o extiende el tipo de clase que se le pasa.

Type Parameters:
T - Tipo de dato que es implementado o extendido por la clase designada mediante className.
Parameters:
className - Nombre de una clase que extiende o implementa T y a cuyo constructor por defecto instanciaremos.
type - Clase que representa el tipo de dato del objeto que queremos instanciar.
cl - Cargador de clases a utilizar.
Returns:
Objeto instanciado.
Throws:
ClassNotFoundException - si la clase indicada en className no se encuentra.
EmptyArgumentException - si className es una cadena vacía.
ExceptionInInitializerError - si Class.forName() o createObject(Class) la lanzan.
IllegalClassException - si la clase className no extiende o implementa T.
NotImplementedException - si se recibe alguna excepción de tipo InstantiationException o IllegalAccessException. Por ejemplo, si:
  • La clase o su constructor vacío no son accesibles.
  • La clase es abstracta, es una interfaz o se corresponde a un tipo primitivo.
NullArgumentException - si type o className son nulos.
SecurityException - si createObject(Class) la lanza.
See Also:
Class.forName(String,boolean, ClassLoader), IllegalAccessException, InstantiationException

getConstructor

public static <T> Constructor<T> getConstructor(Class<T> type,
                                                Class<?>... classes)
Devuelve el constructor de un objeto para una especificación de argumentos dada, encapsulando la excepción NoSuchMethodException como IllegalArgumentException.

Type Parameters:
T - Tipo de objeto que crea el constructor.
Parameters:
type - Clase que define al tipo <T>.
classes - Lista de clases que especifican en tipo de dato de cada argumentos, en el mismo orden en que se definen en éste.
Returns:
El constructor correspondiente a la especificación de tipo de objeto y lista de argumentos.
Throws:
NullPointerException - si type es nulo.
SecurityException - si Class::getConstructor(Class...) la lanza.
IllegalArgumentException - si no existe el constructor especificado.
See Also:
Class.getConstructor(Class...)


Copyright © 2024. All rights reserved.