Java AST eclipse,向MethodInvocation添加参数

Java AST eclipse,向MethodInvocation添加参数,java,eclipse,abstract-syntax-tree,Java,Eclipse,Abstract Syntax Tree,我试图将参数添加到MethodInvocation的参数列表中,但它似乎不起作用,我可以删除对象,但我看不到如何添加它们。 我的最终目标是采用2个MethodInvocation,使用不同的参数调用同一个方法,并将其转换为1个MethodInvocation,该MethodInvocation以ConditionalExpression作为参数。 例如: 将转换为: System.out.println((A ? "hi" : "hey")); 因此,如果有人知道如何将参数列表转换为一个大表达

我试图将参数添加到MethodInvocation的参数列表中,但它似乎不起作用,我可以删除对象,但我看不到如何添加它们。 我的最终目标是采用2个MethodInvocation,使用不同的参数调用同一个方法,并将其转换为1个MethodInvocation,该MethodInvocation以ConditionalExpression作为参数。 例如:

将转换为:

System.out.println((A ? "hi" : "hey"));
因此,如果有人知道如何将参数列表转换为一个大表达式,我也会很感激,我可以把它放在ConditionalExpression中

谢谢

编辑:对不起,忘了提到它是一个用于ecplise的代码格式化插件吗

EDIT2:我正在尝试运行的代码:

final ExpressionStatement thenStmnt=(ExpressionStatement)((Block)node.getThenStatement()).statements().get(0),
            elseStmnt=(ExpressionStatement)((Block)node.getElseStatement()).statements().get(0);
MethodInvocation thenMethod=(MethodInvocation)thenStmnt.getExpression(),
                elseMethod=(MethodInvocation)elseStmnt.getExpression();
final MethodInvocation method=ast.newMethodInvocation();
method.setName(ast.newSimpleName("add"));
method.arguments().add(0, elseMethod.arguments().get(0));

ast是一个给定的leagal ast,node是一个给定的leagal IfStatement。

解决了,问题在这里:

method.arguments().add(0, elseMethod.arguments().get(0));
如果您想要获取或复制已经是原始代码一部分的内容,也就是说已经存在于AST中,则必须使用r.createCopyTarget,如下所示:

method.arguments().add(0, r.createCopyTarget(elseMethod.arguments().get(0)));

是否要调用Met3Met1param1,Met1param2;像这样吗?如果Met是指方法,那么不。我想做的正是我给出的例子中所说的。我的主要问题是如何将arguemtn添加到MethodInvocation,如果你能告诉我如何做,我想我会从这里开始。请你举个例子,即使错了也没问题,这样可以更清楚地了解你想要什么?我添加了我试图运行的代码,这就是你想要的吗?解决了它,我将在8小时内添加答案,因为从现在起8小时内我似乎只能回答我的问题o_0
method.arguments().add(0, r.createCopyTarget(elseMethod.arguments().get(0)));