Class 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 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 classe
        type - 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 - Constructeur
        args - 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 constructeur
        parameterTypes - 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 classe
        type - 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 - Object
        method - method which is invocated
        args - 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éthode
        field - 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éthode
        field - 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éthodes
        methodName - Nom de la méthode recherchée
        parameterTypes - 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 - Class
        annotation - 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 - Class
        annotation - 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 - constructeur
        i - 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 - method
        i - 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 - the
        exceptionSupplier -
        Returns:
        first Generic of this class
      • getPropertyName

        public static String getPropertyName​(Method method)
        Détermine le nom de la propriété associée à un getteur.
        Parameters:
        method - Méthode du getteur
        Returns:
        Nom de la propriété associée