Package arcommon
Class ReflectionUtil
- java.lang.Object
-
- arcommon.ReflectionUtil
-
public class ReflectionUtil extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description ReflectionUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.StringcalculateClassPath(java.lang.Class<?> clazz)static java.lang.StringcalculateJarFileName(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.StringclassToClassNameInJavaSyntax(java.lang.Class<?> clazz)static java.lang.StringclassToClassNameInJavaSyntax(java.lang.Class<?> clazz, boolean includePackage)static java.lang.StringclassToEmptyImplementationSourceCode(java.lang.Class<?> clazz)static voidcopyFields(java.lang.Object fromObject, java.lang.Object toObject)static <T> TcreateInstanceDefaultConstructor(java.lang.Class<T> clazz)static <T> TcreateInstanceDefaultPrivateConstructor(java.lang.Class<T> clazz)Creates an object using default private constructor.static <T> TcreateInstanceImplementingInterface(java.lang.Class<?> clazz, java.lang.Class<T> interfaceToImplement)static <T> TcreateInstanceImplementingInterface(java.lang.String className, java.lang.Class<T> interfaceToImplement)static <T> TcreateInstanceNoConstructorCall(java.lang.Class<T> clazz)Create an instance of clazz without calling any constructors.static <T> TcreateInstanceUsingConstructor(java.lang.Class<T> clazz, java.lang.Class<?>[] parameters, java.lang.Object[] parameterValues)static <T> TcreateInstanceUsingConstructor(java.lang.Class<T> clazz, java.lang.Object... parameterValues)static <T> TcreateInstanceUsingParentConstructorOnly(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.ObjectcreateInstanceUsingParentConstructorOnlyUnsafe(java.lang.Class<?> clazz, java.lang.Class<?> parent)static java.lang.StringenumToString(java.lang.Enum<?> object)static java.lang.StringenumToStringUnsafe(java.lang.Object object)static java.lang.reflect.FieldfindField(java.lang.Class<?> onClass, java.lang.String fieldName)static java.lang.reflect.FieldfindField(java.lang.Class<?> onClass, java.lang.String fieldName, boolean throwOnFail)static java.lang.reflect.MethodfindMethod(java.lang.Class<?> onClass, java.lang.String methodName, java.lang.Class<?>[] parameters)static java.lang.reflect.MethodfindMethod(java.lang.Class<?> onClass, java.lang.String methodName, java.lang.Class<?>[] parameters, boolean nonStatic, boolean throwOnMissing)static java.lang.reflect.MethodfindStaticMethod(java.lang.Class<?> onClass, java.lang.String methodName, java.lang.Class<?>[] parameters)static java.lang.ObjectgetFieldValue(java.lang.Object onObject, java.lang.Class<?> onClass, java.lang.String fieldName)static java.lang.ObjectgetFieldValue(java.lang.Object onObject, java.lang.Class<?> onClass, java.lang.String fieldName, boolean throwOnFieldMissing)static java.lang.ObjectgetFieldValue(java.lang.Object onObject, java.lang.String fieldName)static java.lang.ObjectgetStaticFieldValue(java.lang.Class<?> onClass, java.lang.String fieldName)static java.lang.ObjectgetStaticFieldValue(java.lang.Class<?> onClass, java.lang.String fieldName, boolean throwOnFieldMissing)static booleanhasMethod(java.lang.Class<?> onClass, java.lang.String methodName, java.lang.Class<?>[] parameters)static java.lang.ObjectinvokeMethod(java.lang.Object onObject, java.lang.reflect.Method method, java.lang.Object[] parameterValues)static java.lang.ObjectinvokeMethod(java.lang.Object onObject, java.lang.String methodName, java.lang.Class<?>[] parameters, java.lang.Object[] parameterValues)static java.lang.ObjectinvokeMethod(java.lang.Object onObject, java.lang.String methodName, java.lang.Object... parameterValues)static java.lang.ObjectinvokeStaticMethod(java.lang.Class<?> onClass, java.lang.String methodName, java.lang.Class<?>[] parameters, java.lang.Object[] parameterValues)static java.lang.ObjectinvokeStaticMethod(java.lang.Class<?> onClass, java.lang.String methodName, java.lang.Object... parameterValues)static booleanisClassEnum(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 booleanloadedFromJarFile(java.lang.Class<?> clazz)static voidopenPackageForModuleAccess(java.lang.Class<?> classInPackage, java.lang.Class<?> classInModule)Use this method to avoid the following warning.static voidprintClassTree(java.lang.Object object)static java.lang.reflect.FieldsetFieldValue(java.lang.Object onObject, java.lang.Class<?> onClass, java.lang.String fieldName, java.lang.Object value)static voidsetFieldValue(java.lang.Object onObject, java.lang.reflect.Field field, java.lang.Object value)static voidsetStaticFieldValue(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)
-
-
-
Constructor Detail
-
ReflectionUtil
public ReflectionUtil()
-
-
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)
-
createInstanceDefaultConstructor
public static <T> T createInstanceDefaultConstructor(java.lang.Class<T> clazz)
-
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.
-
createInstanceNoConstructorCall
public static <T> T createInstanceNoConstructorCall(java.lang.Class<T> clazz)
Create an instance of clazz without calling any constructors.
Code copied from http://www.javaspecialists.eu/archive/Issue175.html
and modified
-
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).
-
createInstanceUsingParentConstructorOnlyUnsafe
public static java.lang.Object createInstanceUsingParentConstructorOnlyUnsafe(java.lang.Class<?> clazz, java.lang.Class<?> parent)
-
createInstanceImplementingInterface
public static <T> T createInstanceImplementingInterface(java.lang.String className, java.lang.Class<T> interfaceToImplement)
-
createInstanceImplementingInterface
public static <T> T createInstanceImplementingInterface(java.lang.Class<?> clazz, java.lang.Class<T> interfaceToImplement)
-
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)
-
classToClassNameInJavaSyntax
public static java.lang.String classToClassNameInJavaSyntax(java.lang.Class<?> clazz, boolean includePackage)
-
classNameInJavaSyntaxToClass
public static java.lang.Class<?> classNameInJavaSyntaxToClass(java.lang.String className)
-
classNameInJavaSyntaxToClass
public static java.lang.Class<?> classNameInJavaSyntaxToClass(java.lang.String classNameOriginal, boolean throwOnFail)
-
classToEmptyImplementationSourceCode
public static java.lang.String classToEmptyImplementationSourceCode(java.lang.Class<?> clazz)
-
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
-
-