尝试向方法主体添加语句列表时发生IllegalArgumentException

问题描述

我有一个包含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 (将#修改为@)