final class HiddenClassDefiner extends java.lang.Object implements ClassDefiner
ClassDefiner that defines classes using MethodHandles.Lookup#defineHiddenClass.| Modifier and Type | Field and Description |
|---|---|
private static java.lang.reflect.Method |
GET_OBJECT_METHOD |
private static java.lang.Object |
HIDDEN_CLASS_OPTIONS |
private static java.lang.reflect.Method |
HIDDEN_DEFINE_METHOD |
private static java.lang.Object |
THE_UNSAFE |
private static java.lang.Object |
TRUSTED_LOOKUP_BASE |
private static java.lang.Object |
TRUSTED_LOOKUP_OFFSET |
| Constructor and Description |
|---|
HiddenClassDefiner() |
| Modifier and Type | Method and Description |
|---|---|
private static java.lang.Object |
classOptions(java.lang.String... options)
Creates
MethodHandles.Lookup.ClassOption array with the named options. |
java.lang.Class<?> |
define(java.lang.Class<?> hostClass,
byte[] bytecode)
Defines a new class relative to the host.
|
private static final java.lang.Object THE_UNSAFE
private static final java.lang.Object TRUSTED_LOOKUP_BASE
private static final java.lang.Object TRUSTED_LOOKUP_OFFSET
private static final java.lang.reflect.Method GET_OBJECT_METHOD
private static final java.lang.Object HIDDEN_CLASS_OPTIONS
private static final java.lang.reflect.Method HIDDEN_DEFINE_METHOD
public java.lang.Class<?> define(java.lang.Class<?> hostClass,
byte[] bytecode)
throws java.lang.Exception
ClassDefinerdefine in interface ClassDefinerjava.lang.Exceptionprivate static java.lang.Object classOptions(java.lang.String... options)
throws java.lang.ClassNotFoundException
MethodHandles.Lookup.ClassOption array with the named options.java.lang.ClassNotFoundException