gpt4 book ai didi

java - ASTParser - 方法调用 - 如何检测静态方法调用

转载 作者:行者123 更新时间:2023-11-30 03:19:38 25 4
gpt4 key购买 nike

示例代码:

String.valueOf("test");

此代码的访问者:

cu.accept(new ASTVisitor()
{
public boolean visit(MethodInvocation inv)
{
System.out.println(inv);
System.out.println(inv.getExpression().getClass());
return true;
}
});

输出:

String.valueOf("test")
class org.eclipse.jdt.core.dom.SimpleName

但非静态调用也会返回 SimpleName。

其次,我尝试获取resolveMethodBinding(),但这里没有任何方法可以帮助我检测是否是静态方法。

有人知道这样做吗?谢谢

最佳答案

您需要构建具有可用绑定(bind)的 AST,然后调用:

IMethodBinding binding = inv.resolveMethodBinding();
if (binding.getModifiers() & Modifier.STATIC > 0) {
// method is static method
} else {
// method is not static
}

关于java - ASTParser - 方法调用 - 如何检测静态方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31655807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com