public class Java8
extends java.lang.Object
| Constructor and Description |
|---|
Java8() |
| Modifier and Type | Method and Description |
|---|---|
static java.lang.invoke.CallSite |
callLambdaMetaFactory(ReloadableType rtype,
java.lang.Object[] bsmArgs,
java.lang.Object lookup,
java.lang.String indyNameAndDescriptor,
java.lang.Class<?> executorClass) |
static java.lang.Object |
emulateInvokeDynamic(ReloadableType rtype,
java.lang.Class<?> executorClass,
org.objectweb.asm.Handle handle,
java.lang.Object[] bsmArgs,
java.lang.Object lookup,
java.lang.String indyNameAndDescriptor,
java.lang.Object[] indyParams)
Programmatic emulation of INVOKEDYNAMIC so initialize the callsite via use of the bootstrap method then invoke
the result.
|
static byte[] |
enhanceInnerClassLambdaMetaFactory(byte[] bytes)
The metafactory we are enhancing is responsible for generating the anonymous classes that will call the lambda
methods in our type
|
public static java.lang.Object emulateInvokeDynamic(ReloadableType rtype, java.lang.Class<?> executorClass, org.objectweb.asm.Handle handle, java.lang.Object[] bsmArgs, java.lang.Object lookup, java.lang.String indyNameAndDescriptor, java.lang.Object[] indyParams)
executorClass - the executor that will contain the lambda function, null if not yet reloadedhandle - bootstrap method handlebsmArgs - bootstrap method argumentslookup - The MethodHandles.Lookup object that can be used to find typesindyNameAndDescriptor - Method name and descriptor at invokedynamic siteindyParams - parameters when the invokedynamic call is madepublic static java.lang.invoke.CallSite callLambdaMetaFactory(ReloadableType rtype, java.lang.Object[] bsmArgs, java.lang.Object lookup, java.lang.String indyNameAndDescriptor, java.lang.Class<?> executorClass) throws java.lang.Exception
java.lang.Exceptionpublic static byte[] enhanceInnerClassLambdaMetaFactory(byte[] bytes)
bytes - the class bytes for the InnerClassLambdaMetaFactory that is going to be modified