其他分享
首页 > 其他分享> > 动态方法调用秘密武器 —— invokedynamic 指令解读 - MethodHandle

动态方法调用秘密武器 —— invokedynamic 指令解读 - MethodHandle

作者:互联网

原文:https://juejin.im/book/5c25811a6fb9a049ec6b23ee/section/5ccc66dd518825403b5975fb

import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;

public class Foo {
public void print(String s, String args1) {
System.out.println("hello, " + s + " ^^^ " + args1);
}

public static void main(String[] args) throws Throwable {
Foo foo = new Foo();

// MethodType methodType = MethodType.methodType(void.class, String.class);
MethodType methodType = MethodType.methodType(void.class, new Class<?>[]{String.class, String.class});
MethodHandle methodHandle = MethodHandles.lookup().findVirtual(Foo.class, "print", methodType);
// methodHandle.invoke(foo, "world");
methodHandle.invoke(foo, "world", "hahaha!");
}
}

 

标签:invokedynamic,invoke,秘密武器,methodType,MethodType,MethodHandle,Foo,class,String
来源: https://www.cnblogs.com/cxhfuujust/p/11014784.html