ASM中是否有工具/方法来收集类中的所有方法,然后用这些重载方法替换类的调用?
我正在尝试使用带有突变测试的ASM来执行这些操作:
答案 0 :(得分:0)
我不知道任何具体做你想要的工具,但编码应该不难。
对于第二种情况,只需要搜索该方法,并替换名称,假设您不关心反射或虚拟呼叫。
为此,您可以实现owner
并将所有说明替换为所需的(所有者,名称,desc)三元组。请注意,在继承的情况下,Foo bar (II)V
可能与您期望的不同。例如,假设您要替换Child
,并且Foo
有一个子类Child bar (II)V
。在这种情况下,客户端代码可以使用三public String toString()
{
String output = matrixOne.toString().replaceAll("\\[\\[|\\]|,|\\[|\\]\\]", "");
return FormatMatrix(output, rows, columns);
}
来调用该方法。
第一种情况更具挑战性,因为重载方法可能具有不同的类型描述符,因此您必须添加字节码以将参数和/或返回类型转换为正确的类型。但是,这只是阅读ASM文档然后实现它的问题。