我正在使用 java 工具和 ASM 来操作 java 字节码。 我如何知道函数是否是静态的?
我尝试使用 Modifier.isStatic 但无法在仪器内运行它。 我可以使用 ASM 函数知道这一点吗?
我需要它来获取函数参数。如果函数不是静态的,则 this 对象位于堆栈的索引 0 中
最佳答案
编写您自己的类访问者,然后覆盖“visitMethod”
@Override
public MethodVisitor visitMethod(int access, String name, String desc,
String signature, String[] exceptions)
{
// for a single flag bit, test against zero is sufficient
boolean isStatic = (access & Opcodes.ACC_STATIC) != 0;
// do something else
}
关于java - 如何使用 java 检测和 ASM 知道该方法是否是静态的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19228984/