问题描述
我有一个包含IfStatement的方法,我想将其删除,但是我想保留ThenStatement的内容。我已经编写了这段代码,但是当我尝试将提取的表达式列表添加到方法的主体时,它将引发IllegalArgumentException
for (Object s : methodDeclaration.getBody().statements()) {
if (s instanceof IfStatement) {
if (((PrefixExpression) ((IfStatement) s).getExpression()).getoperand().toString()
.equals("test")) {
List statements = ((Block) ((IfStatement) s).getThenStatement()).statements();
methodDeclaration.getBody().statements().addAll(0,statements);
((IfStatement) s).delete();
}
}
}
public static boolean someMethod() {
if (!test) {
StaticmethodCall.call();
test = true;
}
return test;
}
预期结果应该是这样,
public static boolean someMethod() {
StaticmethodCall.call();
test = true;
return test;
}
我正在使用.recordModifications()
方法来应用更改。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)