| package test4; |
| |
| import java.lang.invoke.*; |
| |
| public class InvokeDyn { |
| public static int test9(int i, String s) { return 9; } |
| public int test8(int i, String s) { return 8; } |
| |
| public static CallSite boot(MethodHandles.Lookup caller, String name, MethodType type) |
| throws NoSuchMethodException, IllegalAccessException |
| { |
| MethodHandles.Lookup lookup = MethodHandles.lookup(); |
| Class thisClass = lookup.lookupClass(); |
| MethodHandle method = lookup.findStatic(thisClass, "test9", MethodType.methodType(int.class, int.class, String.class)); |
| return new ConstantCallSite(method); |
| } |
| |
| public CallSite boot2(MethodHandles.Lookup caller, String name, MethodType type) |
| throws NoSuchMethodException, IllegalAccessException |
| { |
| MethodHandles.Lookup lookup = MethodHandles.lookup(); |
| Class thisClass = lookup.lookupClass(); |
| MethodHandle method = lookup.findVirtual(thisClass, "test8", MethodType.methodType(int.class, int.class, String.class)); |
| return new ConstantCallSite(method.asType(MethodType.methodType(int.class, Object.class, int.class, String.class))); |
| } |
| } |