2
如何使用BCEL重命名事物?到目前爲止,我所要做的就是去完成每一種方法的類和常量池中創建一個新的NameAndType常數,那麼我取代舊NameAndType與一個重命名事物
int nameRef = cpg.addNameAndType(newName, m.getSignature());
cpg.setConstant(m.getNameIndex(), cpg.getConstant(nameRef));
這似乎不斷像它應該工作,但我反編譯告訴我這個常量池在這之後是腐敗的。我錯過了一個步驟或什麼?
謝謝:)現在我只需要找出一種方法來更新其他類中的所有方法引用 – Contra 2010-12-13 02:25:32
您可以通過每個調用語句並更改其方法名稱。很可能新方法將被添加到常量池中。但是,您可能需要手動清理CP才能刪除舊的方法名稱。 – 2010-12-13 11:28:28