Class ClassInjector.UsingLookup

java.lang.Object
net.bytebuddy.dynamic.loading.ClassInjector.AbstractBase
net.bytebuddy.dynamic.loading.ClassInjector.UsingLookup
All Implemented Interfaces:
ClassInjector
Enclosing interface:
ClassInjector

@Enhance public static class ClassInjector.UsingLookup extends ClassInjector.AbstractBase

A class injector that uses a java.lang.invoke.MethodHandles$Lookup object for defining a class.

Important: This functionality is only available starting from Java 9.

  • Constructor Details

    • UsingLookup

      protected UsingLookup(Object lookup)
      Creates a new class injector using a lookup instance.
      Parameters:
      lookup - The java.lang.invoke.MethodHandles$Lookup instance to use.
  • Method Details

    • of

      public static ClassInjector.UsingLookup of(Object lookup)
      Creates class injector that defines a class using a method handle lookup.
      Parameters:
      lookup - The java.lang.invoke.MethodHandles$Lookup instance to use.
      Returns:
      An appropriate class injector.
    • lookupType

      public Class<?> lookupType()
      Returns the lookup type this injector is based upon.
      Returns:
      The lookup type.
    • in

      public ClassInjector.UsingLookup in(Class<?> type)
      Resolves this injector to use the supplied type's scope.
      Parameters:
      type - The type to resolve the access scope for.
      Returns:
      An new injector with the specified scope.
    • isAlive

      public boolean isAlive()
      Indicates if this class injector is available on the current VM.
      Returns:
      true if this injector is available on the current VM.
    • injectRaw

      public Map<String,Class<?>> injectRaw(Set<String> names, ClassFileLocator classFileLocator)
      Injects the given types into the represented class loader.
      Parameters:
      names - The names of the types to load via injection.
      classFileLocator - The class file locator to use for resolving binary representations.
      Returns:
      The loaded types that were passed as arguments.
    • isAvailable

      public static boolean isAvailable()
      Checks if the current VM is capable of defining classes using a method handle lookup.
      Returns:
      true if the current VM is capable of defining classes using a lookup.