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
ClassDefiner
define
in interface ClassDefiner
java.lang.Exception
private static java.lang.Object classOptions(java.lang.String... options) throws java.lang.ClassNotFoundException
MethodHandles.Lookup.ClassOption
array with the named options.java.lang.ClassNotFoundException