Comment renommer des objets avec BCEL? Jusqu'à présent, ce que je fais est passe par chaque méthode dans une classe et de créer une nouvelle constante de NameAndType dans la piscine constante, alors je remplace l'ancien NameAndType constant avec celuiRenommer des choses
int nameRef = cpg.addNameAndType(newName, m.getSignature());
cpg.setConstant(m.getNameIndex(), cpg.getConstant(nameRef));
Cela semble que cela devrait fonctionner, mais mon décompilateur me dit que le pool constant est corrompu après cela. Est-ce que je manque une étape ou quelque chose?
Merci :) Maintenant, je dois juste trouver un moyen de mettre à jour toutes les références de méthode dans d'autres classes – Contra
Vous pouvez passer en revue toutes les commandes invoke et changer le nom de la méthode. Très probablement, la nouvelle méthode sera ajoutée au pool constant. Toutefois, vous devrez peut-être nettoyer manuellement le CP pour supprimer l'ancien nom de la méthode. –