Package arcommon

Class ReflectionUtil

    • Constructor Summary

      Constructors 
      Constructor Description
      ReflectionUtil()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String calculateClassPath​(java.lang.Class<?> clazz)  
      static java.lang.String calculateJarFileName​(java.lang.Class<?> clazz)  
      static java.lang.Class<?> classNameInJavaSyntaxToClass​(java.lang.String className)  
      static java.lang.Class<?> classNameInJavaSyntaxToClass​(java.lang.String classNameOriginal, boolean throwOnFail)  
      static java.lang.String classToClassNameInJavaSyntax​(java.lang.Class<?> clazz)  
      static java.lang.String classToClassNameInJavaSyntax​(java.lang.Class<?> clazz, boolean includePackage)  
      static java.lang.String classToEmptyImplementationSourceCode​(java.lang.Class<?> clazz)  
      static void copyFields​(java.lang.Object fromObject, java.lang.Object toObject)  
      static <T> T createInstanceDefaultConstructor​(java.lang.Class<T> clazz)  
      static <T> T createInstanceDefaultPrivateConstructor​(java.lang.Class<T> clazz)
      Creates an object using default private constructor.
      static <T> T createInstanceImplementingInterface​(java.lang.Class<?> clazz, java.lang.Class<T> interfaceToImplement)  
      static <T> T createInstanceImplementingInterface​(java.lang.String className, java.lang.Class<T> interfaceToImplement)  
      static <T> T createInstanceNoConstructorCall​(java.lang.Class<T> clazz)
      Create an instance of clazz without calling any constructors.
      static <T> T createInstanceUsingConstructor​(java.lang.Class<T> clazz, java.lang.Class<?>[] parameters, java.lang.Object[] parameterValues)  
      static <T> T createInstanceUsingConstructor​(java.lang.Class<T> clazz, java.lang.Object... parameterValues)  
      static <T> T createInstanceUsingParentConstructorOnly​(java.lang.Class<T> clazz, java.lang.Class<? super T> parent)
      Create an instance of clazz calling only the class parent's constructor(s).
      static java.lang.Object createInstanceUsingParentConstructorOnlyUnsafe​(java.lang.Class<?> clazz, java.lang.Class<?> parent)  
      static java.lang.String enumToString​(java.lang.Enum<?> object)  
      static java.lang.String enumToStringUnsafe​(java.lang.Object object)  
      static java.lang.reflect.Field findField​(java.lang.Class<?> onClass, java.lang.String fieldName)  
      static java.lang.reflect.Field findField​(java.lang.Class<?> onClass, java.lang.String fieldName, boolean throwOnFail)  
      static java.lang.reflect.Method findMethod​(java.lang.Class<?> onClass, java.lang.String methodName, java.lang.Class<?>[] parameters)  
      static java.lang.reflect.Method findMethod​(java.lang.Class<?> onClass, java.lang.String methodName, java.lang.Class<?>[] parameters, boolean nonStatic, boolean throwOnMissing)  
      static java.lang.reflect.Method findStaticMethod​(java.lang.Class<?> onClass, java.lang.String methodName, java.lang.Class<?>[] parameters)  
      static java.lang.Object getFieldValue​(java.lang.Object onObject, java.lang.Class<?> onClass, java.lang.String fieldName)  
      static java.lang.Object getFieldValue​(java.lang.Object onObject, java.lang.Class<?> onClass, java.lang.String fieldName, boolean throwOnFieldMissing)  
      static java.lang.Object getFieldValue​(java.lang.Object onObject, java.lang.String fieldName)  
      static java.lang.Object getStaticFieldValue​(java.lang.Class<?> onClass, java.lang.String fieldName)  
      static java.lang.Object getStaticFieldValue​(java.lang.Class<?> onClass, java.lang.String fieldName, boolean throwOnFieldMissing)  
      static boolean hasMethod​(java.lang.Class<?> onClass, java.lang.String methodName, java.lang.Class<?>[] parameters)  
      static java.lang.Object invokeMethod​(java.lang.Object onObject, java.lang.reflect.Method method, java.lang.Object[] parameterValues)  
      static java.lang.Object invokeMethod​(java.lang.Object onObject, java.lang.String methodName, java.lang.Class<?>[] parameters, java.lang.Object[] parameterValues)  
      static java.lang.Object invokeMethod​(java.lang.Object onObject, java.lang.String methodName, java.lang.Object... parameterValues)  
      static java.lang.Object invokeStaticMethod​(java.lang.Class<?> onClass, java.lang.String methodName, java.lang.Class<?>[] parameters, java.lang.Object[] parameterValues)  
      static java.lang.Object invokeStaticMethod​(java.lang.Class<?> onClass, java.lang.String methodName, java.lang.Object... parameterValues)  
      static boolean isClassEnum​(java.lang.Class<?> clazz)  
      static java.lang.Class<?> loadClass​(java.lang.String className)  
      static java.lang.Class<?> loadClass​(java.lang.String className, boolean throwOnFail)  
      static boolean loadedFromJarFile​(java.lang.Class<?> clazz)  
      static void openPackageForModuleAccess​(java.lang.Class<?> classInPackage, java.lang.Class<?> classInModule)
      Use this method to avoid the following warning.
      static void printClassTree​(java.lang.Object object)  
      static java.lang.reflect.Field setFieldValue​(java.lang.Object onObject, java.lang.Class<?> onClass, java.lang.String fieldName, java.lang.Object value)  
      static void setFieldValue​(java.lang.Object onObject, java.lang.reflect.Field field, java.lang.Object value)  
      static void setStaticFieldValue​(java.lang.Class<?> onClass, java.lang.String fieldName, java.lang.Object value)  
      static java.lang.Enum<?> stringToEnum​(java.lang.Class<?> clazz, java.lang.String value)  
      • Methods inherited from class java.lang.Object

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

      • loadClass

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

        public static java.lang.Class<?> loadClass​(java.lang.String className,
                                                   boolean throwOnFail)
      • setStaticFieldValue

        public static void setStaticFieldValue​(java.lang.Class<?> onClass,
                                               java.lang.String fieldName,
                                               java.lang.Object value)
      • findField

        public static java.lang.reflect.Field findField​(java.lang.Class<?> onClass,
                                                        java.lang.String fieldName)
      • findField

        public static java.lang.reflect.Field findField​(java.lang.Class<?> onClass,
                                                        java.lang.String fieldName,
                                                        boolean throwOnFail)
      • setFieldValue

        public static java.lang.reflect.Field setFieldValue​(java.lang.Object onObject,
                                                            java.lang.Class<?> onClass,
                                                            java.lang.String fieldName,
                                                            java.lang.Object value)
      • setFieldValue

        public static void setFieldValue​(java.lang.Object onObject,
                                         java.lang.reflect.Field field,
                                         java.lang.Object value)
      • getStaticFieldValue

        public static java.lang.Object getStaticFieldValue​(java.lang.Class<?> onClass,
                                                           java.lang.String fieldName)
      • getStaticFieldValue

        public static java.lang.Object getStaticFieldValue​(java.lang.Class<?> onClass,
                                                           java.lang.String fieldName,
                                                           boolean throwOnFieldMissing)
      • getFieldValue

        public static java.lang.Object getFieldValue​(java.lang.Object onObject,
                                                     java.lang.String fieldName)
      • getFieldValue

        public static java.lang.Object getFieldValue​(java.lang.Object onObject,
                                                     java.lang.Class<?> onClass,
                                                     java.lang.String fieldName)
      • getFieldValue

        public static java.lang.Object getFieldValue​(java.lang.Object onObject,
                                                     java.lang.Class<?> onClass,
                                                     java.lang.String fieldName,
                                                     boolean throwOnFieldMissing)
      • hasMethod

        public static boolean hasMethod​(java.lang.Class<?> onClass,
                                        java.lang.String methodName,
                                        java.lang.Class<?>[] parameters)
      • findMethod

        public static java.lang.reflect.Method findMethod​(java.lang.Class<?> onClass,
                                                          java.lang.String methodName,
                                                          java.lang.Class<?>[] parameters)
      • findStaticMethod

        public static java.lang.reflect.Method findStaticMethod​(java.lang.Class<?> onClass,
                                                                java.lang.String methodName,
                                                                java.lang.Class<?>[] parameters)
      • findMethod

        public static java.lang.reflect.Method findMethod​(java.lang.Class<?> onClass,
                                                          java.lang.String methodName,
                                                          java.lang.Class<?>[] parameters,
                                                          boolean nonStatic,
                                                          boolean throwOnMissing)
      • invokeStaticMethod

        public static java.lang.Object invokeStaticMethod​(java.lang.Class<?> onClass,
                                                          java.lang.String methodName,
                                                          java.lang.Object... parameterValues)
      • invokeStaticMethod

        public static java.lang.Object invokeStaticMethod​(java.lang.Class<?> onClass,
                                                          java.lang.String methodName,
                                                          java.lang.Class<?>[] parameters,
                                                          java.lang.Object[] parameterValues)
      • invokeMethod

        public static java.lang.Object invokeMethod​(java.lang.Object onObject,
                                                    java.lang.String methodName,
                                                    java.lang.Object... parameterValues)
      • invokeMethod

        public static java.lang.Object invokeMethod​(java.lang.Object onObject,
                                                    java.lang.String methodName,
                                                    java.lang.Class<?>[] parameters,
                                                    java.lang.Object[] parameterValues)
      • invokeMethod

        public static java.lang.Object invokeMethod​(java.lang.Object onObject,
                                                    java.lang.reflect.Method method,
                                                    java.lang.Object[] parameterValues)
      • createInstanceUsingConstructor

        public static <T> T createInstanceUsingConstructor​(java.lang.Class<T> clazz,
                                                           java.lang.Object... parameterValues)
      • createInstanceUsingConstructor

        public static <T> T createInstanceUsingConstructor​(java.lang.Class<T> clazz,
                                                           java.lang.Class<?>[] parameters,
                                                           java.lang.Object[] parameterValues)
      • createInstanceDefaultPrivateConstructor

        public static <T> T createInstanceDefaultPrivateConstructor​(java.lang.Class<T> clazz)
        Creates an object using default private constructor.
        Note: Can create an object, even though the class only has a private constructor.
      • createInstanceUsingParentConstructorOnly

        public static <T> T createInstanceUsingParentConstructorOnly​(java.lang.Class<T> clazz,
                                                                     java.lang.Class<? super T> parent)
        Create an instance of clazz calling only the class parent's constructor(s).
      • isClassEnum

        public static boolean isClassEnum​(java.lang.Class<?> clazz)
      • enumToStringUnsafe

        public static java.lang.String enumToStringUnsafe​(java.lang.Object object)
      • enumToString

        public static java.lang.String enumToString​(java.lang.Enum<?> object)
      • stringToEnum

        public static java.lang.Enum<?> stringToEnum​(java.lang.Class<?> clazz,
                                                     java.lang.String value)
      • copyFields

        public static void copyFields​(java.lang.Object fromObject,
                                      java.lang.Object toObject)
      • printClassTree

        public static void printClassTree​(java.lang.Object object)
      • classToClassNameInJavaSyntax

        public static java.lang.String classToClassNameInJavaSyntax​(java.lang.Class<?> clazz,
                                                                    boolean includePackage)
      • classNameInJavaSyntaxToClass

        public static java.lang.Class<?> classNameInJavaSyntaxToClass​(java.lang.String classNameOriginal,
                                                                      boolean throwOnFail)
      • loadedFromJarFile

        public static boolean loadedFromJarFile​(java.lang.Class<?> clazz)
      • calculateJarFileName

        public static java.lang.String calculateJarFileName​(java.lang.Class<?> clazz)
      • calculateClassPath

        public static java.lang.String calculateClassPath​(java.lang.Class<?> clazz)
      • openPackageForModuleAccess

        public static void openPackageForModuleAccess​(java.lang.Class<?> classInPackage,
                                                      java.lang.Class<?> classInModule)
        Use this method to avoid the following warning.
        WARNING: An illegal reflective access operation has occurred
        WARNING: Illegal reflective access by <packageName>.<className> (file:<path>) to field <packageName>.<className>.<fieldName>
        WARNING: Please consider reporting this to the maintainers of arcommon.ReflectionUtil
        WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
        WARNING: All illegal access operations will be denied in a future release