使用java文件中的java解析器修改方法变量

时间:2015-12-14 07:54:12

标签: java methods javaparser

我正在使用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'? 请帮忙!感谢

2 个答案:

答案 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;
        }
    }