Package io.vertigo.core.util
Class ClassUtil
- java.lang.Object
-
- io.vertigo.core.util.ClassUtil
-
public final class ClassUtil extends Object
The ClassUtil class provides methods to determine the structure of a class or to create instances.- Author:
- pchretien
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Class<?>
classForName(String javaClassName)
Récupération d'une classe non typée à partir de son nom.static <J> Class<? extends J>
classForName(String javaClassName, Class<J> type)
Récupération d'une classe typée à partir de son nom.static <J> Constructor<J>
findConstructor(Class<J> clazz, Class<?>[] parameterTypes)
Récupère le constructeur correspondant à la signature indiquée.static Method
findMethod(Class<?> clazz, String methodName, Class<?>... parameterTypes)
Récupère la méthode correspondant au nom et à la signature indiquée parmi les méthodes passées.static Object
get(Object instance, Field field)
Récupération dynamique de la valeur d'un champ.static Collection<Field>
getAllFields(Class<?> clazz)
Retourne tous les champs déclarés (incluant les champs parents) pour une classe donnée.static Collection<Field>
getAllFields(Class<?> clazz, Class<? extends Annotation> annotation)
Retourne tous les champs déclarés (incluant les champs parents) et annotés pour une classe donnée.static Set<Class<?>>
getAllInterfaces(Class<?> clazz)
Retourne toutes les interfaces (incluant celles des parents) pour une classe donnée.static Collection<Method>
getAllMethods(Class<?> clazz)
Retourne toutes les méthodes déclarées pour une classe donnée (incluant les méthodes des parents).static Collection<Method>
getAllMethods(Class<?> clazz, Class<? extends Annotation> annotation)
Retourne toutes les méthodes déclarées et annotées par la dite annotation.static Class<?>
getGeneric(Constructor<?> constructor, int i)
Récupération du type générique d'un champ paramétré.static Class<?>
getGeneric(Field field)
Récupération du type générique d'un champ paramétré.static Class<?>
getGeneric(Method method, int i)
Récupération du type générique d'un champ paramétré.static Class<?>
getGeneric(Type type, Supplier<RuntimeException> exceptionSupplier)
Finds the generic type.static String
getPropertyName(Method method)
Détermine le nom de la propriété associée à un getteur.static Object
invoke(Object instance, Method method, Object... args)
Dynamic invocation of a method on a specific instance.static <J> J
newInstance(Class<J> clazz)
Création d'une nouvelle instance typée via une classe (constructeur vide).static <J> J
newInstance(Constructor<J> constructor, Object[] args)
Création d'une nouvelle instance typée via un constructeur et ses arguments.static Object
newInstance(String javaClassName)
Création d'une nouvelle instance non typée via un nom de classe (constructeur vide).static <J> J
newInstance(String javaClassName, Class<J> type)
Création d'une nouvelle instance typée via un nom de classe (constructeur vide).static void
set(Object instance, Field field, Object value)
Affectation dynamique de la valeur d'un champ (méme privé).
-
-
-
Method Detail
-
newInstance
public static Object newInstance(String javaClassName)
Création d'une nouvelle instance non typée via un nom de classe (constructeur vide). Veuillez privilégier les méthodes retournat une instance typé dés que le type est connu.- Parameters:
javaClassName
- Nom de la classe- Returns:
- Nouvelle instance
-
newInstance
public static <J> J newInstance(String javaClassName, Class<J> type)
Création d'une nouvelle instance typée via un nom de classe (constructeur vide).- Type Parameters:
J
- Type de l'instance retournée- Parameters:
javaClassName
- Nom de la classetype
- Type retourné- Returns:
- Nouvelle instance
-
newInstance
public static <J> J newInstance(Class<J> clazz)
Création d'une nouvelle instance typée via une classe (constructeur vide).- Type Parameters:
J
- Type de l'instance retournée- Parameters:
clazz
- Classe- Returns:
- Nouvelle instance
-
newInstance
public static <J> J newInstance(Constructor<J> constructor, Object[] args)
Création d'une nouvelle instance typée via un constructeur et ses arguments.- Type Parameters:
J
- Type de l'instance retournée- Parameters:
constructor
- Constructeurargs
- Arguments de la construction- Returns:
- Nouvelle instance
-
findConstructor
public static <J> Constructor<J> findConstructor(Class<J> clazz, Class<?>[] parameterTypes)
Récupère le constructeur correspondant à la signature indiquée.- Type Parameters:
J
- Class type- Parameters:
clazz
- Classe sur laquelle on recherche le constructeurparameterTypes
- Signature du constructeur recherché- Returns:
- Constructeur recherché
-
classForName
public static Class<?> classForName(String javaClassName)
Récupération d'une classe non typée à partir de son nom.- Parameters:
javaClassName
- Nom de la classe- Returns:
- Classe java
-
classForName
public static <J> Class<? extends J> classForName(String javaClassName, Class<J> type)
Récupération d'une classe typée à partir de son nom.- Type Parameters:
J
- Type de l'instance retournée- Parameters:
javaClassName
- Nom de la classetype
- Type.- Returns:
- Classe java
-
invoke
public static Object invoke(Object instance, Method method, Object... args)
Dynamic invocation of a method on a specific instance.- Parameters:
instance
- Objectmethod
- method which is invocatedargs
- Args- Returns:
- value provided as the result by the method
-
set
public static void set(Object instance, Field field, Object value)
Affectation dynamique de la valeur d'un champ (méme privé).- Parameters:
instance
- Objet sur lequel est invoqué la méthodefield
- Champ concernévalue
- Nouvelle valeur
-
get
public static Object get(Object instance, Field field)
Récupération dynamique de la valeur d'un champ.- Parameters:
instance
- Objet sur lequel est invoqué la méthodefield
- Champ concerné- Returns:
- Valeur
-
findMethod
public static Method findMethod(Class<?> clazz, String methodName, Class<?>... parameterTypes)
Récupère la méthode correspondant au nom et à la signature indiquée parmi les méthodes passées.- Parameters:
clazz
- Classe sur laquelle on recherche les méthodesmethodName
- Nom de la méthode recherchéeparameterTypes
- Signature de la méthode recherchée- Returns:
- Méthode recherchée
-
getAllFields
public static Collection<Field> getAllFields(Class<?> clazz, Class<? extends Annotation> annotation)
Retourne tous les champs déclarés (incluant les champs parents) et annotés pour une classe donnée.- Parameters:
clazz
- Classannotation
- Annotation attendue- Returns:
- Tous les champs déclarés (incluant les champs parents)
-
getAllMethods
public static Collection<Method> getAllMethods(Class<?> clazz, Class<? extends Annotation> annotation)
Retourne toutes les méthodes déclarées et annotées par la dite annotation.- Parameters:
clazz
- Classannotation
- Annotation attendue- Returns:
- Tous les champs déclarés (incluant les champs parents)
-
getAllFields
public static Collection<Field> getAllFields(Class<?> clazz)
Retourne tous les champs déclarés (incluant les champs parents) pour une classe donnée.- Parameters:
clazz
- Class- Returns:
- Tous les champs déclarés (incluant les champs parents)
-
getAllMethods
public static Collection<Method> getAllMethods(Class<?> clazz)
Retourne toutes les méthodes déclarées pour une classe donnée (incluant les méthodes des parents).- Parameters:
clazz
- Class- Returns:
- Toutes les méthodes déclarées (incluant les méthodes des parents)
-
getAllInterfaces
public static Set<Class<?>> getAllInterfaces(Class<?> clazz)
Retourne toutes les interfaces (incluant celles des parents) pour une classe donnée.- Parameters:
clazz
- Class- Returns:
- Toutes les interfaces implémentées
-
getGeneric
public static Class<?> getGeneric(Constructor<?> constructor, int i)
Récupération du type générique d'un champ paramétré. Il convient qu'il y ait UN et un seul générique déclaré. exemple : List=> Voiture Option => Voiture - Parameters:
constructor
- constructeuri
- Index du paramètre dans le composant- Returns:
- Classe du type générique
-
getGeneric
public static Class<?> getGeneric(Method method, int i)
Récupération du type générique d'un champ paramétré. Il convient qu'il y ait UN et un seul générique déclaré. exemple : List=> Voiture Option => Voiture - Parameters:
method
- methodi
- Index du paramètre dans le composant- Returns:
- Classe du type générique
-
getGeneric
public static Class<?> getGeneric(Field field)
Récupération du type générique d'un champ paramétré. Il convient qu'il y ait UN et un seul générique déclaré. exemple : List=> Voiture Option => Voiture - Parameters:
field
- Champ- Returns:
- Classe du type générique
-
getGeneric
public static Class<?> getGeneric(Type type, Supplier<RuntimeException> exceptionSupplier)
Finds the generic type. Ex : List==> Car - Parameters:
type
- theexceptionSupplier
-- Returns:
- first Generic of this class
-
-