Enum 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>, java.lang.constant.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();