Class HiddenClassDefiner

  • All Implemented Interfaces:
    ClassDefiner

    final class HiddenClassDefiner
    extends java.lang.Object
    implements ClassDefiner
    ClassDefiner that defines classes using MethodHandles.Lookup#defineHiddenClass.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method 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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • THE_UNSAFE

        private static final java.lang.Object THE_UNSAFE
      • TRUSTED_LOOKUP_BASE

        private static final java.lang.Object TRUSTED_LOOKUP_BASE
      • TRUSTED_LOOKUP_OFFSET

        private static final java.lang.Object TRUSTED_LOOKUP_OFFSET
      • GET_OBJECT_METHOD

        private static final java.lang.reflect.Method GET_OBJECT_METHOD
      • HIDDEN_CLASS_OPTIONS

        private static final java.lang.Object HIDDEN_CLASS_OPTIONS
      • HIDDEN_DEFINE_METHOD

        private static final java.lang.reflect.Method HIDDEN_DEFINE_METHOD
    • Constructor Detail

      • HiddenClassDefiner

        HiddenClassDefiner()
    • Method Detail

      • define

        public java.lang.Class<?> define​(java.lang.Class<?> hostClass,
                                         byte[] bytecode)
                                  throws java.lang.Exception
        Description copied from interface: ClassDefiner
        Defines a new class relative to the host.
        Specified by:
        define in interface ClassDefiner
        Throws:
        java.lang.Exception
      • classOptions

        private static java.lang.Object classOptions​(java.lang.String... options)
                                              throws java.lang.ClassNotFoundException
        Creates MethodHandles.Lookup.ClassOption array with the named options.
        Throws:
        java.lang.ClassNotFoundException