微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决尝试向方法主体添加语句列表时发生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 举报,一经查实,本站将立刻删除。