【发布时间】:2020-04-21 12:39:43
【问题描述】:
我无法获得正确的方法行。很少有正确的很少。
for (CtMethod declaredMethod : declaredMethods) {
int methodLineNumber = declaredMethod.getMethodInfo().getLineNumber(0);
}
1) 错误是什么?
2)在getLineNumber(int offset)中如何计算偏移量?
【问题讨论】:
-
你想得到什么行号?一个方法通常跨越多行。您是否试图获取方法标题所在的行?
-
是的,方法声明或方法的开始。
-
此信息不可用。只有可执行代码与调试信息中的行号相关联。因此,您只能获取方法的第一行,从而生成可执行代码。对于抽象和本机方法,根本没有可用的行号。
标签: java methods bytecode line-numbers java-assist