我正在使用java解析器来读取java文件。然后我遇到了如何在每个方法中访问变量,然后在每个方法中修改变量名称和类型的问题。
private double[] getExtremeValues(double[] d) {
double min = Double.MAX_VALUE;
double max = -min;
}
[UPDATE]
有关详细信息,我的方法如下:
class Myclass
{
public slot:
signal:
}
在那种方法中,我只想用'double max1'修改'double max'。第二个问题,如何在方法参数中获得'double [] d'? 请帮忙!感谢
答案 0 :(得分:0)
是否要修改方法中包含的所有变量?在这种情况下,您将需要使用递归或使用访问者(请参阅例如GenericVisitorAdapter)。
如果您只想更改参数,请查看MethodDeclaration中的方法“getParameters”。
在这两种情况下都要注意,只更改变量的名称可能会破坏代码:您还需要更改对该变量的所有引用。
通过更改方法的类型是什么意思?可以使用MethodDeclaration方法setType轻松完成。
答案 1 :(得分:0)
这是一个修改方法名称的示例。你需要重写一些方法
private static class MethodNameModifier extends ModifierVisitor<Void> {
@Override
public MethodDeclaration visit(MethodDeclaration md, Void arg) {
super.visit(md, arg);
//System.out.println(md.getName());
md.setName("x");
return md;
}
}