我正在使用 ASTRewrite 来转换它:
new Targect1().asd(a);
进入这个:
Targect1 temp1 = new Targect1();
temp1.asd(a);
这是我的代码:
String temp_identifier = getNextVariableId();
VariableDeclarationFragment fragment = node.getAST().newVariableDeclarationFragment();
fragment.setName(node.getAST().newSimpleName(temp_identifier));
ClassInstanceCreation creation = (ClassInstanceCreation)rewrite.createCopyTarget(node.getExpression()));
fragment.setInitializer(creation);
VariableDeclarationStatement previous_declaration = node.getAST().newVariableDeclarationStatement(fragment);
rewrite.replace(node, previous_declaration,null);
它还没有完成,但是当检查片段的值时,它得到了里面的方法声明,但没有关于类型的内容。当我检查它显示:
temp1 = new MISSING()