请问方法句柄调用asType转换时,为什么MethodType的参数会多出一个?
代码如下:public class Invoke {
public void typeConvert() throws Throwable {
MethodHandles.Lookup lookup = MethodHandles.lookup();
MethodHandle mh = lookup.findVirtual(String.class, "substring",
MethodType.methodType(String.class, int.class, int.class));
//(MethodType.methodType比以上多出一个参数????
mh = mh.asType(MethodType.methodType(String.class, String.class,Integer.class, Integer.class));
Object obj = mh.invokeWithArguments("Hello", 2, 3);
System.out.println(obj);
} public static void main(String[] args) {
Invoke invoke = new Invoke();
try {
invoke.typeConvert();
} catch (Throwable ex) {
ex.printStackTrace();
}
}
}