一种具有已知签名但是是动态类型的方法
所以我最近一直非常喜欢字节码,我想学习如何使用invokedynamic。 我已经想通过invokedynamic链接一个静态方法,但我有一个更具体的用例。 我要:
目前我的引导方法如下所示:
public static CallSite bootstrap(MethodHandles.Lookup caller, String name, MethodType methodType) throws Throwable {
return new ConstantCallSite(MethodHandles.lookup().findVirtual(null, name, methodType));
}
哪里空是我不知道的。 我基本上试图在对象上调用虚拟,但绕过检查来查看方法是否真的存在(因为对象的静态绑定类型将是Object)。 (因为invokevirtual-ing会在我传入一个类时抛出一个错误,并且一个方法不在那个类中)。
任何帮助表示赞赏!
编辑:基本上我试图实现一种鸭子打字。
链接地址: http://www.djcxy.com/p/63465.html上一篇: ing a method with a known signature, but dynamic type
下一篇: When is invokedynamic actually useful (besides lazy constants)?