Enum Class AgentBuilder.LambdaInstrumentationStrategy.LambdaMetafactoryFactory.Loader.UsingMethodHandleLookup

java.lang.Object
java.lang.Enum<AgentBuilder.LambdaInstrumentationStrategy.LambdaMetafactoryFactory.Loader.UsingMethodHandleLookup>
net.bytebuddy.agent.builder.AgentBuilder.LambdaInstrumentationStrategy.LambdaMetafactoryFactory.Loader.UsingMethodHandleLookup
All Implemented Interfaces:
Serializable, Comparable<AgentBuilder.LambdaInstrumentationStrategy.LambdaMetafactoryFactory.Loader.UsingMethodHandleLookup>, Constable, AgentBuilder.LambdaInstrumentationStrategy.LambdaMetafactoryFactory.Loader
Enclosing interface:
AgentBuilder.LambdaInstrumentationStrategy.LambdaMetafactoryFactory.Loader

public static enum AgentBuilder.LambdaInstrumentationStrategy.LambdaMetafactoryFactory.Loader.UsingMethodHandleLookup extends Enum<AgentBuilder.LambdaInstrumentationStrategy.LambdaMetafactoryFactory.Loader.UsingMethodHandleLookup> implements AgentBuilder.LambdaInstrumentationStrategy.LambdaMetafactoryFactory.Loader
A loader that uses a method handle lookup object to load a class. This is implemented as follows:
 MethodHandleInfo info = caller.revealDirect(implementation);
 boolean classData = (Modifier.isProtected(info.getModifiers())
  && !VerifyAccess.isSamePackage(caller.lookupClass(), info.getDeclaringClass()))
   || info.getReferenceKind() == Opcodes.H_INVOKESPECIAL;
 MethodHandles.Lookup lookup;
 if (classData) {
   lookup = caller.defineHiddenClassWithClassData(binaryRepresentation,
     info,
     true,
     MethodHandles.Lookup.ClassOption.NESTMATE,
     MethodHandles.Lookup.ClassOption.STRONG);
 } else {
   lookup = caller.defineHiddenClass(binaryRepresentation,
     true,
     MethodHandles.Lookup.ClassOption.NESTMATE,
     MethodHandles.Lookup.ClassOption.STRONG);
 }
 Class<?> lambdaClass = lookup.lookupClass();