DefaultMethodServiceImplByJ9.java
package space.sunqian.common.dynamic.proxy.jdk;
import space.sunqian.annotations.Nonnull;
import space.sunqian.common.invoke.Invocable;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.reflect.Method;
enum DefaultMethodServiceImplByJ9 implements DefaultMethodService {
INST;
@Override
public @Nonnull Invocable getDefaultMethodInvocable(@Nonnull Method method) throws Exception {
MethodHandles.Lookup lookup = MethodHandles.lookup();
MethodHandle methodHandle = lookup.unreflectSpecial(method, method.getDeclaringClass());
return Invocable.of(methodHandle, false);
}
}