java7中MethodHandle.asType用法

绿光 2012-09-11 04:18:49
请问方法句柄调用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();
}
}
}
...全文
127 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
shizhijie0 2012-09-11
  • 打赏
  • 举报
回复 1
多出一个参数代表String实例
shizhijie0 2012-09-11
  • 打赏
  • 举报
回复 1
多出一个参数代表String实例

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧