final class UnsafeReflectionAccessor extends ReflectionAccessor
ReflectionAccessor based on Unsafe.
NOTE: This implementation is designed for Java 9. Although it should work with earlier Java releases, it is better to
use PreJava9ReflectionAccessor for them.
| Modifier and Type | Field and Description |
|---|---|
private java.lang.reflect.Field |
overrideField |
private java.lang.Object |
theUnsafe |
private static java.lang.Class |
unsafeClass |
| Constructor and Description |
|---|
UnsafeReflectionAccessor() |
| Modifier and Type | Method and Description |
|---|---|
private static java.lang.reflect.Field |
getOverrideField() |
private static java.lang.Object |
getUnsafeInstance() |
void |
makeAccessible(java.lang.reflect.AccessibleObject ao)
Does the same as
ao.setAccessible(true), but never throws
java.lang.reflect.InaccessibleObjectException |
(package private) boolean |
makeAccessibleWithUnsafe(java.lang.reflect.AccessibleObject ao) |
getInstanceprivate static java.lang.Class unsafeClass
private final java.lang.Object theUnsafe
private final java.lang.reflect.Field overrideField
public void makeAccessible(java.lang.reflect.AccessibleObject ao)
ao.setAccessible(true), but never throws
java.lang.reflect.InaccessibleObjectExceptionmakeAccessible in class ReflectionAccessorboolean makeAccessibleWithUnsafe(java.lang.reflect.AccessibleObject ao)
private static java.lang.Object getUnsafeInstance()
private static java.lang.reflect.Field getOverrideField()