【发布时间】:2018-02-15 14:32:47
【问题描述】:
public class A{
void methodA(){
add(1, 2);
add(1.2, 2.5);
}
void add(int a, int b){
// add two integers
}
void add(double a, double b){
// add two double numbers
}
}
现在我使用下面的代码来提取方法内部的方法调用
new VoidVisitorAdapter<Object>() {
@Override
public void visit(MethodCallExpr n, Object arg) {
super.visit(n, arg);
System.out.println(n.getNameAsString());
}
}.visit(JavaParser.parse(code), null);
现在我如何区分这两个方法调用 add(1, 2) 和 add(1.2, 2.5) 在 methodA 中使用MethodCallExpr ?
【问题讨论】:
-
你不需要。您的实际参数类型将确定确切的方法。这就是method overloading 的全部目的。
-
我只是想知道如何在另一个方法 @PM77-1 中使用 MethodCallExpr 区分这两个方法调用
-
那么实际的问题是:如何指定参数类型?对吧?
-
如何给两种方法不同的签名,以便在从方法调用中提取时识别这两种方法不同? @PM77-1
标签: java javaparser