2
BCELを使用して名前を変更するにはどうすればよいですか?これまでのところ私は何をすべきか、それは動作しますが、私の逆コンパイラをすべきであるように、私はこれが思われる1名前を変更する
int nameRef = cpg.addNameAndType(newName, m.getSignature());
cpg.setConstant(m.getNameIndex(), cpg.getConstant(nameRef));
と一定の古いNameAndTypeを置き換える、クラス内の各メソッドを通過し、一定のプールに新しいNameAndType定数を作成することですこの後一定のプールが壊れていると私に伝えます。私はステップや何かを欠いていますか?
ありがとうございました:)今は、他のクラスのすべてのメソッド参照を更新する方法を理解するだけです。 – Contra
すべての呼び出しステートメントを調べて、そのメソッド名を変更できます。ほとんどの場合、新しいメソッドが定数プールに追加されます。ただし、手動でCPをクリーンアップして古いメソッド名を削除する必要があります。 –