gpt4 book ai didi

java - InvokeDynamic - 如何访问引导方法中的参数?

转载 作者:搜寻专家 更新时间:2023-11-01 03:28:00 25 4
gpt4 key购买 nike

我正在尝试在 JVM7 中使用 invokedynamic 实现“duck typing”。我创建了两个不同的类,它们都有返回 String 的方法 greet()。我随机选择其中之一,将实例存储在堆栈上并调用 invokedynamic(使用 ASM)。

我想知道我是否可以访问引导方法中的参数。因为我无法通过 target 返回适当的 CallSite 而不知道堆栈上有哪个对象以及应该返回哪些 greet() 方法。

如果我的做法是错误的,那么正确的做法是什么?

最佳答案

我会自己回答。

  1. 使用您自己的静态方法(例如 lookup(CallSite cs, Object[] args)
  2. 绑定(bind) CallSite
  3. args[0]是接收者,其余都是参数。在查找方法中做任何你想做的事。

如果您对内联缓存感兴趣(我曾经是),请查看这两个链接:

关于java - InvokeDynamic - 如何访问引导方法中的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8287715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com