< prev index next > src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java
Print this page
import jdk.internal.vm.annotation.Stable;
import sun.invoke.util.ValueConversions;
import sun.invoke.util.VerifyType;
import sun.invoke.util.Wrapper;
+ import java.lang.classfile.ClassBuilder;
import java.lang.classfile.ClassFile;
import java.lang.constant.ClassDesc;
import java.lang.foreign.MemoryLayout;
import java.lang.invoke.MethodHandles.Lookup;
import java.lang.reflect.Array;
@Override
public MethodHandle serializableConstructor(Class<?> decl, Constructor<?> ctorToCall) throws IllegalAccessException {
return IMPL_LOOKUP.serializableConstructor(decl, ctorToCall);
}
+ @Override
+ public CallSite metafactoryInternal(Lookup caller, String interfaceMethodName, MethodType factoryType,
+ MethodType interfaceMethodType, MethodHandle implementation,
+ MethodType dynamicMethodType, Function<ClassBuilder, Object> finisher) throws LambdaConversionException {
+ return LambdaMetafactory.metafactoryInternal(caller, interfaceMethodName, factoryType,
+ interfaceMethodType, implementation, dynamicMethodType, finisher);
+ }
+
+ @Override
+ public CallSite altMetafactoryInternal(Lookup caller, String interfaceMethodName, MethodType factoryType,
+ Function<ClassBuilder, Object> finisher, Object... args) throws LambdaConversionException {
+ return LambdaMetafactory.altMetafactoryInternal(caller, interfaceMethodName, factoryType, finisher, args);
+ }
});
}
/** Result unboxing: ValueConversions.unbox() OR ValueConversions.identity() OR ValueConversions.ignore(). */
private static MethodHandle unboxResultHandle(Class<?> returnType) {
< prev index next >