Class ClassUtil


  • public class ClassUtil
    extends Object
    Utility class for Class objects.
    Version:
    2.0
    Author:
    Nicklas
    Last modified
    $Date: 2018-11-02 08:45:02 +0100 (fr, 02 nov 2018) $
    • Constructor Summary

      Constructors 
      Constructor Description
      ClassUtil()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static <C> Class<? extends C> checkAndLoadClass​(ClassLoader loader, String name, boolean publicNoArgConstructor, Class<C> iface, Class<?>... interfaces)
      Check if a specified class exists and, optionally, if it has public no-argument constructor and implements a set of specific interfaces or superclasses.
      static void checkClass​(Class<?> clazz, boolean publicNoArgConstructor, Class<?>... interfaces)
      Check if a specified class has public no-argument constructor and implements a set of specific interfaces or superclasses.
      static <I> Constructor<I> findConstructor​(Class<I> clazz, Object[] parameters)
      Find a constructor for the specified class which takes parameters of the specified types taking superclasses and interfaces into account.
      static Method findMethod​(Class<?> clazz, String name, Class<?>... arguments)
      Find a method in a clazz with the given name that takes the given list of arguments.
      static Set<Class<?>> getInterfaces​(Class<?> clazz)
      Get all interfaces a class implements, including those implemented by superclasses.
      static boolean isAssignable​(Class<?>[] classes, Object[] values)
      Check if one array of class objects is assignment compatible with values in another array.
      static <I> I newInstance​(Class<I> clazz)
      Utility method for creating a new instance from a class with a default no-argument constructor.
    • Constructor Detail

      • ClassUtil

        public ClassUtil()
    • Method Detail

      • newInstance

        public static <I> I newInstance​(Class<I> clazz)
        Utility method for creating a new instance from a class with a default no-argument constructor. Exceptions are wrapped in BaseExceptions.
        Since:
        3.14
      • findConstructor

        public static <I> Constructor<I> findConstructor​(Class<I> clazz,
                                                         Object[] parameters)
        Find a constructor for the specified class which takes parameters of the specified types taking superclasses and interfaces into account. This method finds the first declared constructor which can accept parameters of the specified type.
        Parameters:
        clazz - The class to find a constructor for
        parameters - The parameters that are going to be sent to the constructor's Constructor.newInstance(Object[]) method
        Returns:
        A constructor object or null if no constructor was found
      • isAssignable

        public static boolean isAssignable​(Class<?>[] classes,
                                           Object[] values)
        Check if one array of class objects is assignment compatible with values in another array. Ie. the Class.isAssignableFrom(Class) method returns true for each element in the classes array with respect to the class of the corresponding value in the values array. Null elements in the values array are ignored.
        Parameters:
        classes - The class objects representing the parameters we want to assign values to
        values - The parameter values to assign
        Returns:
        TRUE if all parameters are assignable
      • getInterfaces

        public static Set<Class<?>> getInterfaces​(Class<?> clazz)
        Get all interfaces a class implements, including those implemented by superclasses.
        Parameters:
        clazz - The Class to check
        Returns:
        A Set containing the Class objects for the interfaces
      • checkAndLoadClass

        public static <C> Class<? extends C> checkAndLoadClass​(ClassLoader loader,
                                                               String name,
                                                               boolean publicNoArgConstructor,
                                                               Class<C> iface,
                                                               Class<?>... interfaces)
                                                        throws ClassNotFoundException,
                                                               NoSuchMethodException,
                                                               ClassCastException
        Check if a specified class exists and, optionally, if it has public no-argument constructor and implements a set of specific interfaces or superclasses.
        Parameters:
        loader - The classloader used to load the class, or null to use the default classloader
        name - The fully qualified name of class to check
        publicNoArgConstructor - TRUE to check if a public no-argument constructor exists
        interfaces - An array of class objects representing interfaces or superclasses that the class to check must implement or extend
        Returns:
        The Class object for the named class
        Throws:
        ClassNotFoundException - If a class with the specified name isn't found
        NoSuchMethodException - If a public no-argument constructor isn't found
        ClassCastException - If the class doesn't implement or extend all of the interfaces/superclasses
        Since:
        2.5
      • checkClass

        public static void checkClass​(Class<?> clazz,
                                      boolean publicNoArgConstructor,
                                      Class<?>... interfaces)
                               throws NoSuchMethodException,
                                      ClassCastException
        Check if a specified class has public no-argument constructor and implements a set of specific interfaces or superclasses.
        Parameters:
        clazz - The clazz to check
        publicNoArgConstructor - TRUE to check if a public no-argument constructor exists
        interfaces - An array of class objects representing interfaces or superclasses that the class to check must implement or extend
        Throws:
        NoSuchMethodException - If a public no-argument constructor isn't found
        ClassCastException - If the class doesn't implement or extend all of the interfaces/superclasses
        Since:
        2.10
      • findMethod

        public static Method findMethod​(Class<?> clazz,
                                        String name,
                                        Class<?>... arguments)
        Find a method in a clazz with the given name that takes the given list of arguments. This method is just calling Class.getMethod(String, Class...) but returns null instead of throwing an exception in case the method is not found.
        Parameters:
        clazz - The class to look for the method in
        name - The name of the method
        arguments - The class types of the arguments
        Returns:
        The method or null if not found
        Since:
        2.7