Class JVMDriverReflectionDriver
- java.lang.Object
-
- nonapi.io.github.classgraph.reflection.ReflectionDriver
-
- nonapi.io.github.classgraph.reflection.JVMDriverReflectionDriver
-
class JVMDriverReflectionDriver extends ReflectionDriver
Reflection driver for the jvm-driver library, if it is available at runtime. This library allows access to non-public fields and methods, circumventing encapsulation and visibility controls, via a range of JVM-native tactics.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static interface
JVMDriverReflectionDriver.ClassFinder
-
Nested classes/interfaces inherited from class nonapi.io.github.classgraph.reflection.ReflectionDriver
ReflectionDriver.ClassMemberCache
-
-
Field Summary
Fields Modifier and Type Field Description private JVMDriverReflectionDriver.ClassFinder
classFinder
private java.lang.Object
driver
private java.lang.reflect.Method
getDeclaredConstructors
private java.lang.reflect.Method
getDeclaredFields
private java.lang.reflect.Method
getDeclaredMethods
private java.lang.reflect.Method
getField
private java.lang.reflect.Method
invokeMethod
private java.lang.reflect.Method
setAccessibleMethod
private java.lang.reflect.Method
setField
-
Constructor Summary
Constructors Constructor Description JVMDriverReflectionDriver()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) java.lang.Class<?>
findClass(java.lang.String className)
Find a class by name.(package private) <T> java.lang.reflect.Constructor<T>[]
getDeclaredConstructors(java.lang.Class<T> cls)
Get declared constructors for class.(package private) java.lang.reflect.Field[]
getDeclaredFields(java.lang.Class<?> cls)
Get declared fields for class.(package private) java.lang.reflect.Method[]
getDeclaredMethods(java.lang.Class<?> cls)
Get declared methods for class.(package private) java.lang.Object
getField(java.lang.Object object, java.lang.reflect.Field field)
Get the value of a non-static field, boxing the value if necessary.(package private) java.lang.Object
getStaticField(java.lang.reflect.Field field)
Get the value of a static field, boxing the value if necessary.(package private) java.lang.Object
invokeMethod(java.lang.Object object, java.lang.reflect.Method method, java.lang.Object... args)
Invoke a non-static method, boxing the result if necessary.(package private) java.lang.Object
invokeStaticMethod(java.lang.reflect.Method method, java.lang.Object... args)
Invoke a static method, boxing the result if necessary.boolean
makeAccessible(java.lang.Object instance, java.lang.reflect.AccessibleObject accessibleObject)
Make a field or method accessible.(package private) void
setField(java.lang.Object object, java.lang.reflect.Field field, java.lang.Object value)
Set the value of a non-static field, unboxing the value if necessary.(package private) void
setStaticField(java.lang.reflect.Field field, java.lang.Object value)
Set the value of a static field, unboxing the value if necessary.-
Methods inherited from class nonapi.io.github.classgraph.reflection.ReflectionDriver
findField, findInstanceField, findInstanceMethod, findMethod, findStaticField, findStaticMethod, isAccessible
-
-
-
-
Field Detail
-
driver
private java.lang.Object driver
-
getDeclaredMethods
private final java.lang.reflect.Method getDeclaredMethods
-
getDeclaredConstructors
private final java.lang.reflect.Method getDeclaredConstructors
-
getDeclaredFields
private final java.lang.reflect.Method getDeclaredFields
-
getField
private final java.lang.reflect.Method getField
-
setField
private final java.lang.reflect.Method setField
-
invokeMethod
private final java.lang.reflect.Method invokeMethod
-
setAccessibleMethod
private final java.lang.reflect.Method setAccessibleMethod
-
classFinder
private JVMDriverReflectionDriver.ClassFinder classFinder
-
-
Method Detail
-
makeAccessible
public boolean makeAccessible(java.lang.Object instance, java.lang.reflect.AccessibleObject accessibleObject)
Description copied from class:ReflectionDriver
Make a field or method accessible.- Specified by:
makeAccessible
in classReflectionDriver
- Parameters:
instance
- the object instance, or null if static.accessibleObject
- the field or method.- Returns:
- true if successful.
-
findClass
java.lang.Class<?> findClass(java.lang.String className) throws java.lang.Exception
Description copied from class:ReflectionDriver
Find a class by name.- Specified by:
findClass
in classReflectionDriver
- Parameters:
className
- the class name- Returns:
- the class reference
- Throws:
java.lang.Exception
-
getDeclaredMethods
java.lang.reflect.Method[] getDeclaredMethods(java.lang.Class<?> cls) throws java.lang.Exception
Description copied from class:ReflectionDriver
Get declared methods for class.- Specified by:
getDeclaredMethods
in classReflectionDriver
- Parameters:
cls
- the class- Returns:
- the declared methods
- Throws:
java.lang.Exception
-
getDeclaredConstructors
<T> java.lang.reflect.Constructor<T>[] getDeclaredConstructors(java.lang.Class<T> cls) throws java.lang.Exception
Description copied from class:ReflectionDriver
Get declared constructors for class.- Specified by:
getDeclaredConstructors
in classReflectionDriver
- Type Parameters:
T
- the generic type- Parameters:
cls
- the class- Returns:
- the declared constructors
- Throws:
java.lang.Exception
-
getDeclaredFields
java.lang.reflect.Field[] getDeclaredFields(java.lang.Class<?> cls) throws java.lang.Exception
Description copied from class:ReflectionDriver
Get declared fields for class.- Specified by:
getDeclaredFields
in classReflectionDriver
- Parameters:
cls
- the class- Returns:
- the declared fields
- Throws:
java.lang.Exception
-
getField
java.lang.Object getField(java.lang.Object object, java.lang.reflect.Field field) throws java.lang.Exception
Description copied from class:ReflectionDriver
Get the value of a non-static field, boxing the value if necessary.- Specified by:
getField
in classReflectionDriver
- Parameters:
object
- the object instance to get the field value fromfield
- the non-static field- Returns:
- the value of the field
- Throws:
java.lang.Exception
-
setField
void setField(java.lang.Object object, java.lang.reflect.Field field, java.lang.Object value) throws java.lang.Exception
Description copied from class:ReflectionDriver
Set the value of a non-static field, unboxing the value if necessary.- Specified by:
setField
in classReflectionDriver
- Parameters:
object
- the object instance to get the field value fromfield
- the non-static fieldvalue
- the value to set- Throws:
java.lang.Exception
-
getStaticField
java.lang.Object getStaticField(java.lang.reflect.Field field) throws java.lang.Exception
Description copied from class:ReflectionDriver
Get the value of a static field, boxing the value if necessary.- Specified by:
getStaticField
in classReflectionDriver
- Parameters:
field
- the static field- Returns:
- the static field
- Throws:
java.lang.Exception
-
setStaticField
void setStaticField(java.lang.reflect.Field field, java.lang.Object value) throws java.lang.Exception
Description copied from class:ReflectionDriver
Set the value of a static field, unboxing the value if necessary.- Specified by:
setStaticField
in classReflectionDriver
- Parameters:
field
- the static fieldvalue
- the value to set- Throws:
java.lang.Exception
-
invokeMethod
java.lang.Object invokeMethod(java.lang.Object object, java.lang.reflect.Method method, java.lang.Object... args) throws java.lang.Exception
Description copied from class:ReflectionDriver
Invoke a non-static method, boxing the result if necessary.- Specified by:
invokeMethod
in classReflectionDriver
- Parameters:
object
- the object instance to invoke the method onmethod
- the non-static methodargs
- the method arguments (ornew Object[0]
if there are no args)- Returns:
- the return value (possibly a boxed value)
- Throws:
java.lang.Exception
-
invokeStaticMethod
java.lang.Object invokeStaticMethod(java.lang.reflect.Method method, java.lang.Object... args) throws java.lang.Exception
Description copied from class:ReflectionDriver
Invoke a static method, boxing the result if necessary.- Specified by:
invokeStaticMethod
in classReflectionDriver
- Parameters:
method
- the static methodargs
- the method arguments (ornew Object[0]
if there are no args)- Returns:
- the return value (possibly a boxed value)
- Throws:
java.lang.Exception
-
-