動態方法調用祕密武器 —— invokedynamic 指令解讀 - MethodHandle

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

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!");    }}
相關文章
相關標籤/搜索