@API(value=Internal) public final class ReflectionUtils extends java.lang.Object
These utilities are intended solely for usage within the JUnit framework itself. Any usage by external parties is not supported. Use at your own risk!
| Modifier and Type | Class and Description |
|---|---|
static class |
ReflectionUtils.MethodSortOrder |
| Modifier and Type | Method and Description |
|---|---|
static java.util.List<java.lang.Class<?>> |
findAllClassesInClasspathRoot(java.io.File root,
java.util.function.Predicate<java.lang.Class<?>> classTester) |
static java.util.List<java.lang.Class<?>> |
findAllClassesInPackage(java.lang.String basePackageName,
java.util.function.Predicate<java.lang.Class<?>> classTester) |
static java.util.List<java.lang.reflect.Method> |
findAllMethodsInHierarchy(java.lang.Class<?> clazz,
ReflectionUtils.MethodSortOrder sortOrder)
Return all methods in superclass hierarchy except from Object.
|
static java.util.Optional<java.lang.reflect.Method> |
findMethod(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Class<?>... parameterTypes) |
static java.util.List<java.lang.reflect.Method> |
findMethods(java.lang.Class<?> clazz,
java.util.function.Predicate<java.lang.reflect.Method> predicate) |
static java.util.List<java.lang.reflect.Method> |
findMethods(java.lang.Class<?> clazz,
java.util.function.Predicate<java.lang.reflect.Method> predicate,
ReflectionUtils.MethodSortOrder sortOrder) |
static java.util.List<java.lang.Class<?>> |
findNestedClasses(java.lang.Class<?> clazz,
java.util.function.Predicate<java.lang.Class<?>> predicate) |
static java.util.Set<java.lang.Class<?>> |
getAllAssignmentCompatibleClasses(java.lang.Class<?> clazz)
Return all classes and interfaces that can be used as assignment types
for instances of the specified
Class, including itself. |
static java.util.Set<java.io.File> |
getAllClasspathRootDirectories() |
static java.lang.ClassLoader |
getDefaultClassLoader() |
static java.util.Optional<java.lang.Object> |
getOuterInstance(java.lang.Object inner) |
static java.util.Optional<java.lang.Object> |
getOuterInstance(java.lang.Object inner,
java.lang.Class<?> targetType) |
static java.lang.Object |
invokeMethod(java.lang.reflect.Method method,
java.lang.Object target,
java.lang.Object... args)
Invoke the supplied method, making it accessible if necessary and
masking any
checked exception as an unchecked exception.
|
static boolean |
isAbstract(java.lang.Class<?> clazz) |
static boolean |
isAbstract(java.lang.reflect.Member member) |
static boolean |
isPackage(java.lang.String packageName) |
static boolean |
isPrivate(java.lang.Class<?> clazz) |
static boolean |
isPrivate(java.lang.reflect.Member member) |
static boolean |
isPublic(java.lang.Class<?> clazz) |
static boolean |
isPublic(java.lang.reflect.Member member) |
static boolean |
isStatic(java.lang.Class<?> clazz) |
static boolean |
isStatic(java.lang.reflect.Member member) |
static java.util.Optional<java.lang.Class<?>> |
loadClass(java.lang.String name) |
static java.util.Optional<java.lang.Class<?>> |
loadClass(java.lang.String name,
java.lang.ClassLoader classLoader) |
static java.util.Optional<java.lang.reflect.Method> |
loadMethod(java.lang.String fullyQualifiedMethodName)
Try to load a method by its fully qualified name (if such a thing exists for methods).
|
static <T> T |
newInstance(java.lang.Class<T> clazz,
java.lang.Object... args)
Create a new instance of the specified
Class by invoking
the constructor whose argument list matches the types of the supplied
arguments. |
static <T> java.util.Optional<java.lang.Object> |
readFieldValue(java.lang.Class<T> clazz,
java.lang.String fieldName,
T instance)
Reads the value of a potentially inaccessible field.
|
public static java.lang.ClassLoader getDefaultClassLoader()
public static boolean isPublic(java.lang.Class<?> clazz)
public static boolean isPublic(java.lang.reflect.Member member)
public static boolean isPrivate(java.lang.Class<?> clazz)
public static boolean isPrivate(java.lang.reflect.Member member)
public static boolean isAbstract(java.lang.Class<?> clazz)
public static boolean isAbstract(java.lang.reflect.Member member)
public static boolean isStatic(java.lang.Class<?> clazz)
public static boolean isStatic(java.lang.reflect.Member member)
public static <T> T newInstance(java.lang.Class<T> clazz,
java.lang.Object... args)
Class by invoking
the constructor whose argument list matches the types of the supplied
arguments.
The constructor will be made accessible if necessary, and any checked exception will be masked as an unchecked exception.
clazz - the class to instantiate; never nullargs - the arguments to pass to the constructor none of which may be nullExceptionUtils.throwAsUncheckedException(Throwable)public static java.lang.Object invokeMethod(java.lang.reflect.Method method,
java.lang.Object target,
java.lang.Object... args)
method - the method to invoke; never nulltarget - the object on which to invoke the method; may be
null if the method is staticargs - the arguments to pass to the methodnull
if the return type is voidExceptionUtils.throwAsUncheckedException(Throwable)public static java.util.Optional<java.lang.Class<?>> loadClass(java.lang.String name)
public static java.util.Optional<java.lang.Class<?>> loadClass(java.lang.String name,
java.lang.ClassLoader classLoader)
public static java.util.Optional<java.lang.reflect.Method> loadMethod(java.lang.String fullyQualifiedMethodName)
fullyQualifiedMethodName - In the form 'package.subpackage.ClassName#methodName'public static java.util.Optional<java.lang.Object> getOuterInstance(java.lang.Object inner)
public static java.util.Optional<java.lang.Object> getOuterInstance(java.lang.Object inner,
java.lang.Class<?> targetType)
public static boolean isPackage(java.lang.String packageName)
public static java.util.Set<java.io.File> getAllClasspathRootDirectories()
public static java.util.List<java.lang.Class<?>> findAllClassesInClasspathRoot(java.io.File root,
java.util.function.Predicate<java.lang.Class<?>> classTester)
public static java.util.List<java.lang.Class<?>> findAllClassesInPackage(java.lang.String basePackageName,
java.util.function.Predicate<java.lang.Class<?>> classTester)
public static java.util.List<java.lang.Class<?>> findNestedClasses(java.lang.Class<?> clazz,
java.util.function.Predicate<java.lang.Class<?>> predicate)
public static java.util.Optional<java.lang.reflect.Method> findMethod(java.lang.Class<?> clazz,
java.lang.String methodName,
java.lang.Class<?>... parameterTypes)
public static java.util.List<java.lang.reflect.Method> findMethods(java.lang.Class<?> clazz,
java.util.function.Predicate<java.lang.reflect.Method> predicate)
public static java.util.List<java.lang.reflect.Method> findMethods(java.lang.Class<?> clazz,
java.util.function.Predicate<java.lang.reflect.Method> predicate,
ReflectionUtils.MethodSortOrder sortOrder)
public static java.util.List<java.lang.reflect.Method> findAllMethodsInHierarchy(java.lang.Class<?> clazz,
ReflectionUtils.MethodSortOrder sortOrder)
public static <T> java.util.Optional<java.lang.Object> readFieldValue(java.lang.Class<T> clazz,
java.lang.String fieldName,
T instance)
If the field does not exist, an exception occurs while reading it, or
the value of the field is null, an empty Optional is
returned.
clazz - the class where the field is declared.fieldName - the name of the fieldinstance - the instance from where the value is to be readpublic static java.util.Set<java.lang.Class<?>> getAllAssignmentCompatibleClasses(java.lang.Class<?> clazz)
Class, including itself.clazz - the Class to lookupClass.isAssignableFrom(java.lang.Class<?>)