我想找出在包中使用AST api引用调用的行号。 我怎么能这样做?
答案 0 :(得分:2)
CompilationUnit.getLineNumber(int position)
位置相对于CompilationUnit对象
文档:
返回对应的行号 到给定的源角色位置 在原始源字符串中。该 编译单元的初始行 编号为1,每行延伸 通过最后一个角色 行尾分隔符。最后一次 线延伸到了尽头 源字符串,没有行 分隔符。例如,来源 字符串类A \ n {n}有3行 对应于包容性角色 范围[0,7],[8,9]和[10,10]。 返回-1表示字符位置 这与任何来源都不对应 行,如果没有行号,则为-2 信息可用于此 编译单位。
答案 1 :(得分:2)
您可以在此papercut article中了解如何在CompilationUnit的方法中进行搜索:
for (ICompilationUnit unit : mypackage.getCompilationUnits()) {
IType[] types = unit.getTypes();
for (int i = 0; i < types.length; i++) {
IType type = types[i];
IMethod[] methods = type.getMethods();
ASTNode.getStartPosition()
函数。CompilationUnit
,您可以在CompilationUnit.getLineNumber(position)