Class ReflectionUtils


  • public final class ReflectionUtils
    extends java.lang.Object
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private ReflectionUtils()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.reflect.Constructor getConstructor​(java.lang.Class<?> clazz, java.lang.Class<?>... arguments)  
      static java.lang.reflect.Method getMethod​(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>... parameters)  
      static java.lang.reflect.Method getMethod​(java.lang.Object instance, java.lang.String methodName, java.lang.Class<?>... parameters)  
      static <T> T instantiate​(java.lang.ClassLoader classLoader, java.lang.String classname, java.lang.Class<T> returnType)  
      static java.lang.Object instantiateObject​(java.lang.String className, java.lang.Class[] types, java.lang.Object[] params, java.lang.ClassLoader classLoader)  
      static java.lang.Object instantiateOneArg​(java.lang.ClassLoader classLoader, java.lang.String className, java.lang.Class<?> param1Class, java.lang.Object param1)  
      static java.lang.Object instantiateTwoArgs​(java.lang.ClassLoader classLoader, java.lang.String className, java.lang.Class<?> param1Class, java.lang.Object param1, java.lang.Class param2Class, java.lang.Object param2)  
      static java.lang.Object invokeGetter​(java.lang.Class<?> instanceType, java.lang.Object instance, java.lang.String methodName)  
      static java.lang.Object invokeGetter​(java.lang.Object instance, java.lang.String methodName)  
      static java.lang.Object invokeMethodChain​(java.lang.Class<?>[] classesChain, java.lang.String[] noArgMethodNames, java.lang.Object fallback)
      Method chain invoker.
      static java.lang.Object invokeMethodWithArray​(java.lang.Object target, java.lang.reflect.Method method, java.lang.Object... args)  
      static java.lang.Object invokeMethodWithArray2​(java.lang.Object target, java.lang.reflect.Method method, java.lang.Object... args)  
      static java.lang.Object invokeSetter​(java.lang.Object target, java.lang.reflect.Method method, java.lang.Object value)  
      static void invokeSetter​(java.lang.Object o, java.lang.String name, java.lang.Class<?> value1clazz, java.lang.Object value)  
      static java.lang.Object invokeStaticMethod​(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>[] parameterTypes, java.lang.Object[] parameters)
      Invoker of public static no-argument method.
      static java.lang.Class<?> loadClass​(java.lang.ClassLoader classLoader, java.lang.String className)  
      static java.lang.Object newInstance​(java.lang.reflect.Constructor constructor, java.lang.Object... params)  
      static java.lang.Class<?> reloadClass​(java.lang.ClassLoader classLoader, java.lang.Object source)  
      static java.lang.reflect.Method tryGetMethod​(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>... parameters)  
      static java.lang.Class<?> tryLoadClass​(java.lang.ClassLoader classLoader, java.lang.String className)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • EMPTY_CLASS_ARRAY

        private static final java.lang.Class<?>[] EMPTY_CLASS_ARRAY
      • EMPTY_OBJECT_ARRAY

        private static final java.lang.Object[] EMPTY_OBJECT_ARRAY
    • Constructor Detail

      • ReflectionUtils

        private ReflectionUtils()
    • Method Detail

      • getMethod

        public static java.lang.reflect.Method getMethod​(java.lang.Object instance,
                                                         java.lang.String methodName,
                                                         java.lang.Class<?>... parameters)
      • getMethod

        public static java.lang.reflect.Method getMethod​(java.lang.Class<?> clazz,
                                                         java.lang.String methodName,
                                                         java.lang.Class<?>... parameters)
      • tryGetMethod

        public static java.lang.reflect.Method tryGetMethod​(java.lang.Class<?> clazz,
                                                            java.lang.String methodName,
                                                            java.lang.Class<?>... parameters)
      • invokeGetter

        public static java.lang.Object invokeGetter​(java.lang.Object instance,
                                                    java.lang.String methodName)
      • invokeGetter

        public static java.lang.Object invokeGetter​(java.lang.Class<?> instanceType,
                                                    java.lang.Object instance,
                                                    java.lang.String methodName)
      • getConstructor

        public static java.lang.reflect.Constructor getConstructor​(java.lang.Class<?> clazz,
                                                                   java.lang.Class<?>... arguments)
      • newInstance

        public static java.lang.Object newInstance​(java.lang.reflect.Constructor constructor,
                                                   java.lang.Object... params)
      • instantiate

        public static <T> T instantiate​(java.lang.ClassLoader classLoader,
                                        java.lang.String classname,
                                        java.lang.Class<T> returnType)
      • instantiateOneArg

        public static java.lang.Object instantiateOneArg​(java.lang.ClassLoader classLoader,
                                                         java.lang.String className,
                                                         java.lang.Class<?> param1Class,
                                                         java.lang.Object param1)
      • instantiateTwoArgs

        public static java.lang.Object instantiateTwoArgs​(java.lang.ClassLoader classLoader,
                                                          java.lang.String className,
                                                          java.lang.Class<?> param1Class,
                                                          java.lang.Object param1,
                                                          java.lang.Class param2Class,
                                                          java.lang.Object param2)
      • invokeSetter

        public static void invokeSetter​(java.lang.Object o,
                                        java.lang.String name,
                                        java.lang.Class<?> value1clazz,
                                        java.lang.Object value)
      • invokeSetter

        public static java.lang.Object invokeSetter​(java.lang.Object target,
                                                    java.lang.reflect.Method method,
                                                    java.lang.Object value)
      • invokeMethodWithArray

        public static java.lang.Object invokeMethodWithArray​(java.lang.Object target,
                                                             java.lang.reflect.Method method,
                                                             java.lang.Object... args)
      • invokeMethodWithArray2

        public static java.lang.Object invokeMethodWithArray2​(java.lang.Object target,
                                                              java.lang.reflect.Method method,
                                                              java.lang.Object... args)
                                                       throws java.lang.reflect.InvocationTargetException
        Throws:
        java.lang.reflect.InvocationTargetException
      • instantiateObject

        public static java.lang.Object instantiateObject​(java.lang.String className,
                                                         java.lang.Class[] types,
                                                         java.lang.Object[] params,
                                                         java.lang.ClassLoader classLoader)
      • tryLoadClass

        public static java.lang.Class<?> tryLoadClass​(java.lang.ClassLoader classLoader,
                                                      java.lang.String className)
      • loadClass

        public static java.lang.Class<?> loadClass​(java.lang.ClassLoader classLoader,
                                                   java.lang.String className)
      • reloadClass

        public static java.lang.Class<?> reloadClass​(java.lang.ClassLoader classLoader,
                                                     java.lang.Object source)
                                              throws java.lang.ReflectiveOperationException
        Throws:
        java.lang.ReflectiveOperationException
      • invokeStaticMethod

        public static java.lang.Object invokeStaticMethod​(java.lang.Class<?> clazz,
                                                          java.lang.String methodName,
                                                          java.lang.Class<?>[] parameterTypes,
                                                          java.lang.Object[] parameters)
        Invoker of public static no-argument method.
        Parameters:
        clazz - class on which public static no-argument methodName is invoked
        methodName - public static no-argument method to be called
        parameterTypes - method parameter types
        parameters - method parameters
        Returns:
        value returned by methodName
        Throws:
        java.lang.RuntimeException - if no such method found
        SurefireReflectionException - if the method could not be called or threw an exception. It has original cause Exception.
      • invokeMethodChain

        public static java.lang.Object invokeMethodChain​(java.lang.Class<?>[] classesChain,
                                                         java.lang.String[] noArgMethodNames,
                                                         java.lang.Object fallback)
        Method chain invoker.
        Parameters:
        classesChain - classes to invoke on method chain
        noArgMethodNames - chain of public methods to call
        fallback - returned value if a chain could not be invoked due to an error
        Returns:
        successfully returned value from the last method call; fallback otherwise
        Throws:
        java.lang.IllegalArgumentException - if classes and noArgMethodNames have different array length