gpt4 book ai didi

java - 如何使用 javassist 删除方法或构造函数的主体?

转载 作者:行者123 更新时间:2023-11-30 08:13:47 28 4
gpt4 key购买 nike

我需要使用 javassist 库删除带有 void 返回类型的构造函数和方法的主体。以下作品。

ctClass.getConstructors()[0].setBody("int i = 0");

但这不是

ctClass.getConstructors()[0].setBody("");

相反,我得到了这个异常

compile error: syntax near ""

当我尝试

ctClass.getConstructors()[0].setBody(null);

我明白了

compiler error: no such a constructor

尝试清空返回类型为 void 的方法时,我遇到了同样的错误。通过谷歌和文档,我不知道如何在不插入某种代码的情况下清空正文,我不想无缘无故地添加任意代码。

最佳答案

Javassist 将方法体替换为有效 block 作为方法体。非语句不是有效 block 。您可以改为将 { } 设置为作为 block 的方法主体。或者,您也可以使隐式 return; 语句显式。

对于构造函数,总是需要先调用 super 构造函数或辅助构造函数。空 block 无效。

关于java - 如何使用 javassist 删除方法或构造函数的主体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29811085/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com