0
這是一些代碼。如何使用ASM將操作碼從方法複製到Java類文件中的另一個方法?
static synchronized void q(ua paramua, int paramInt) {
try {
if (d) { if (paramInt > -16711936);
return; }
if (q * 514194583 > 0) { if (paramInt > -16711936);
abf localabf = new abf(paramua);
n.d(localabf, -984409319);
}
else {
paramua.ma(false);
}
return; } catch (RuntimeException localRuntimeException) { throw aht.d(localRuntimeException, "ck.q(" + 41);
}
}
static synchronized void b(ua paramua)
{
if (d) return;
if (q * 514194583 > 0) {
abf localabf = new abf(paramua);
n.d(localabf, -836239689);
}
else {
paramua.ma(false);
}
}
這兩個方法執行相同的操作。 第一種方法的第二個參數是psudo參數的,所以我想清楚了原來的代碼,使這個方法是這樣的...
static synchronized void q(ua paramua, int paramInt)
{
if (d) return;
if (q * 514194583 > 0) {
abf localabf = new abf(paramua);
n.d(localabf, -836239689);
}
else {
paramua.ma(false);
}
}
我如何做這個動作? 我試過這樣。
destMethodNode.instructions.clear();
destMethodNode.instructions.add(srcMethodNode.instructions);
但引發空指針異常。是什麼原因?
我會編輯源代碼並重新編譯它。工作的可能性更大。要回答你的問題,你不能添加一個列表列表,也許addAll()是你的意圖? –
爲什麼組裝涉及這個? – harold
請提供您看到的NPE的堆棧跟蹤。 –