xref: /aosp_15_r20/external/javassist/src/test/test4/InvokeDyn.java (revision f1fbf3c2ab775ce834e0af96b7a85bdc7a0eac65)
1*f1fbf3c2SXin Li package test4;
2*f1fbf3c2SXin Li 
3*f1fbf3c2SXin Li import java.lang.invoke.*;
4*f1fbf3c2SXin Li 
5*f1fbf3c2SXin Li public class InvokeDyn {
test9(int i, String s)6*f1fbf3c2SXin Li     public static int test9(int i, String s) { return 9; }
test8(int i, String s)7*f1fbf3c2SXin Li     public int test8(int i, String s) { return 8; }
8*f1fbf3c2SXin Li 
boot(MethodHandles.Lookup caller, String name, MethodType type)9*f1fbf3c2SXin Li     public static CallSite boot(MethodHandles.Lookup caller, String name, MethodType type)
10*f1fbf3c2SXin Li         throws NoSuchMethodException, IllegalAccessException
11*f1fbf3c2SXin Li     {
12*f1fbf3c2SXin Li         MethodHandles.Lookup lookup = MethodHandles.lookup();
13*f1fbf3c2SXin Li         Class thisClass = lookup.lookupClass();
14*f1fbf3c2SXin Li         MethodHandle method = lookup.findStatic(thisClass, "test9", MethodType.methodType(int.class, int.class, String.class));
15*f1fbf3c2SXin Li         return new ConstantCallSite(method);
16*f1fbf3c2SXin Li     }
17*f1fbf3c2SXin Li 
boot2(MethodHandles.Lookup caller, String name, MethodType type)18*f1fbf3c2SXin Li     public CallSite boot2(MethodHandles.Lookup caller, String name, MethodType type)
19*f1fbf3c2SXin Li         throws NoSuchMethodException, IllegalAccessException
20*f1fbf3c2SXin Li     {
21*f1fbf3c2SXin Li         MethodHandles.Lookup lookup = MethodHandles.lookup();
22*f1fbf3c2SXin Li         Class thisClass = lookup.lookupClass();
23*f1fbf3c2SXin Li         MethodHandle method = lookup.findVirtual(thisClass, "test8", MethodType.methodType(int.class, int.class, String.class));
24*f1fbf3c2SXin Li         return new ConstantCallSite(method.asType(MethodType.methodType(int.class, Object.class, int.class, String.class)));
25*f1fbf3c2SXin Li     }
26*f1fbf3c2SXin Li }
27