Est-il possible de remplacer une méthode au moment de l'exécution?
Est-il de toute façon de remplacer une méthode au moment de l'exécution? Même si cela nécessite la création dynamique d'une sous-classe de cette instance?
Pourquoi? Qu'essayez-vous de faire?
quel est votre raisonnement de vouloir faire cela? Êtes-vous seulement capable de déterminer la méthode de détails au moment de l'exécution?
cglib.sourceforge.net/apidocs/net/sf/cglib/Enhancer.html ?
quel est votre raisonnement de vouloir faire cela? Êtes-vous seulement capable de déterminer la méthode de détails au moment de l'exécution?
cglib.sourceforge.net/apidocs/net/sf/cglib/Enhancer.html ?
OriginalL'auteur Maxwell Dergosits | 2011-11-25
Vous devez vous connecter pour publier un commentaire.
Avec la plaine de Java, pas de.
Avec ByteBuddy(de préférence), asm, cglib ou aspectj, oui.
Dans la plaine de Java, la chose à faire dans une situation comme celle qui consiste à créer un basé sur l'interface proxy qui gère l'invocation de la méthode et les délégués à l'objet d'origine (ou pas).
OriginalL'auteur Sean Patrick Floyd
Vous pouvez créer une la classe anonyme qui remplace la méthode et utilise le modèle de stratégie de décider quoi faire.
Si vous êtes à la recherche pour la compilation dynamique de code, vous pouvez suivre ces instructions
OriginalL'auteur Kevin Coulombe
Je pense qu'il n'est pas possible avec Java simple.
Avec la réflexion et/ou cglib probally vous pouvez le faire.
Regardez les liens ci-dessous:
http://www.rgagnon.com/javadetails/java-0039.html
http://www.javaworld.com/javaworld/jw-06-2006/jw-0612-dynamic.html
OriginalL'auteur Ricardo Silva
Comme les autres ont dit, non, vous ne pouvez pas remplacer une méthode au moment de l'exécution. Cependant, avec Java 8, vous pouvez prendre l'approche fonctionnelle.
Function
est une interface fonctionnelle qui permet de traiter les fonctions de types de référence. Cela signifie que vous pouvez créer plusieurs et basculer entre eux (dynamiquement)-la stratégie de modèle.Prenons un exemple:
De sortie:
Je ne sais pas dans quelles circonstances et de la conception que vous avez l'intention de remplacer, mais le point est que vous remplacez le comportement de la méthode, qui est primordial.
OriginalL'auteur user1803551