我正在使用 ASM 来监视字段访问(putfield 和 getfield)。(对于putfield,)我的问题是,当栈顶是一个基本值(X)而第二个栈顶是一个对象引用(Y)时,我如何插入一些Java指令来调用我的方法与第二个对象引用( Y)作为它的一个参数,从我的方法返回后,两个(X和Y)不会丢失?</p>
总之,如何在 Java 字节码级别访问第二个顶部对象引用而不影响 Java 中堆栈的顶部值(在我访问之后)?
我想使用dup,但它只能处理堆栈的顶部值。因此,它适用于 getfield,因为没有值,我可以直接复制它。
有没有更好的方法来做到这一点?
谢谢。