我正在使用 javassist,并在加载时/运行时生成接口和其他东西。
要调用接口的方法(使用字节码调用接口),我们必须提供几个参数:indexbyte1、indexbyte2、count 和 0(来自http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2。 doc6.html )。
已经有了我想调用的抽象方法(CtMethod),我该如何计算它的计数?
例如,在http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc6.html中,他们说“ invokeinterface 指令的计数操作数记录了参数值数量的度量,其中long 类型或 double 类型的参数值对计数值贡献两个单位,任何其他类型的参数贡献一个单位。此信息也可以从所选方法的描述符中得出。冗余是历史的。
但也要说“计数操作数是一个不能为零的无符号字节。 ”
如果我要调用的抽象方法没有参数,它将计数为 0!?但是count不能为0。方法的描述符是()V。
有什么建议么?