Hi。我想找到方法调用的start和end之间的指令范围。我不想只是更改方法调用所有者/名称/描述。有了预期的结果,我希望能够做到:
我一直在尝试不同的技术来实现这一目标:
start
和end
,>如果有任何混淆,我将给您一些我想要的例子。首先,请看下面我的测试代码,然后回到这里。我希望查找/删除对anotherMethod4
的整个方法调用,并用简单的true
替换它,得到以下代码:
System.out.println( anotherMethod1( anotherMethod2("a", "b") ? "c" : anotherMethod3("d", "e") ? "f" : "g", true ? "j" : "k" ) ? "l" : "m" );
我希望找到/删除对
anotherMethod1
的整个方法调用,并将其替换为简单的false
,从而得到以下代码:
System.out.println( false ? "l" : "m" );
我希望删除对
System.out.println
的整个方法调用,得到以下代码:
private Main() { }
这肯定有可能吗?这是我当前的测试代码:
private Main()
{
System.out.println(
anotherMethod1(
anotherMethod2("a", "b") ?
"c" : anotherMethod3("d", "e") ? "f" : "g",
anotherMethod4("h", "i") ? "j" : "k"
) ? "l" : "m"
);
}
boolean anotherMethod1(String str, String oof)
{
return true;
}
boolean anotherMethod2(String str, String oof)
{
return true;
}
boolean anotherMethod3(String str, String oof)
{
return true;
}
boolean anotherMethod4(String str, String oof)
{
return true;
}
嗨。我想找到方法调用的开始和结束之间的指令范围。我不想只是更改方法调用所有者/名称/描述。有了预期的结果,我想...
方法调用的参数可能会产生副作用,例如method(variable = value)
,甚至可能无法消除,例如在删除调用之后,何时将导致访问未初始化的变量。在字节码级别,属于自变量求值的指令可以与任意不相关的指令交错。