public abstract class ReflectionAccessor
extends java.lang.Object
AccessibleObject.setAccessible(boolean), which may be used to
avoid reflective access issues appeared in Java 9, like java.lang.reflect.InaccessibleObjectException
thrown or warnings like
WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by ...Works both for Java 9 and earlier Java versions.
| Modifier and Type | Field and Description |
|---|---|
private static ReflectionAccessor |
instance |
| Constructor and Description |
|---|
ReflectionAccessor() |
| Modifier and Type | Method and Description |
|---|---|
static ReflectionAccessor |
getInstance()
Obtains a
ReflectionAccessor instance suitable for the current Java version. |
abstract void |
makeAccessible(java.lang.reflect.AccessibleObject ao)
Does the same as
ao.setAccessible(true), but never throws
java.lang.reflect.InaccessibleObjectException |
private static final ReflectionAccessor instance
public abstract void makeAccessible(java.lang.reflect.AccessibleObject ao)
ao.setAccessible(true), but never throws
java.lang.reflect.InaccessibleObjectExceptionpublic static ReflectionAccessor getInstance()
ReflectionAccessor instance suitable for the current Java version.
You may need one a reflective operation in your code throws java.lang.reflect.InaccessibleObjectException.
In such a case, use makeAccessible(AccessibleObject) on a field, method or constructor
(instead of basic AccessibleObject.setAccessible(boolean)).