Question

Bonjour chers membres de SOF!

Qu'est-ce que je recherche?J'ai recherché et recherché sur le Web comment puis-je implémenter / injecter l'interface sur la classe (qui a été compilée bien sûr) et ajouter les méthodes requises par les interfaces de la classe. J'ai aussi essayé d'apprendre BCEL et ASM autant que possible, mais je suis peu de ressources (même avec mon cher ami Google), donc j'espère pouvoir trouver de l'aide ici! Je ne m'attends pas à ce que vous me nourrissiez ou quoi que ce soit, mais j'ai besoin de directions! :) Je sais qu'il y a ce grand livre dans le site ASM et des tutoriels assez beaucoup sur tout ce qui leur est, mais je ne peux pas comprendre comment pourrais-je peut-être ajouter des interfaces / méthodes comme je l'ai déjà dit.Qu'est-ce que j'ai essayé?J'ai trouvé ce lien ici Mais cela n'a pas fonctionné comme je m'y attendais. Je sais exactement ce que je veux faire, mais je ne sais pas comment puis-je y parvenir .. Heres Exemple!

public class Cat {
 public int age;
}

public interface Animal {
 public int getAge();
}

voici la mise en œuvre de cette méthode:

public int getAge(){
 return age;
}

Alors chers membres SOF, comment cela fonctionnerait-il?

Était-ce utile?

La solution

J'ai eu une certaine expérience avec BCEL, ce que vous voulez, c'est commencer par un chargeur de classe personnalisé qui détecte les classes que vous souhaitez redéfinir; Pour chacune de ces classes, obtenez l'objet BCEL Javaclass (utilisez Fe le classloaderRepository), puis modifiez cette classe à votre goût. Lorsque vous avez terminé, procurez-vous le fichier de classe du Javaclass et utilisez classloader # Deficlass pour le transmettre au JVM pour la définition.

Maintenant, pour implémenter les méthodes réelles, je vous suggère d'écrire une classe de test contenant votre code, puis d'exécuter Bcelifier sur le fichier de classe résultant, qui imprimera le code source Java BCEL requis pour générer ce fichier de classe. Inspectez-le et copiez-le à votre goût.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top