comme suit:
public objet invokEMETHOD (String className, String MethodName, Object [] args) lève exception {class OwnerClass = class.forname (className); objet propriétaire = propriétaire de propriétaire.NewInstance (); Classe [] argsclass = new class [args.length]; for (int i = 0, j = args.length; i <j; i ++) {argsclass [i] = args [i] .getClass (); } Method Method = OwnerClass.getMethod (MethodName, argsClass); Retour méthode.invoke (propriétaire, args);}Cependant, dans notre application réelle, nous rencontrerons également une situation où les paramètres réels entrants et les paramètres formels de la méthode à appeler peuvent ne pas être complètement cohérents:
Par exemple, lorsqu'une méthode dans Struts1.x est appelée, elle aura des paramètres de type httpservletResponse.
Dans Tomcat, l'instance de l'objet de demande est en fait: org.apache.catalina.connector.Responsefacade
Il implémente l'interface: javax.servlet.http.httpservletResponse;
Si nous traitons directement l'objet de demande dans le conteneur Web comme un paramètre et le passons dans l'extrait de code ci-dessus, il y aura un problème. Pour le moment, notre méthode de traitement est comme ça. En action, la méthode est généralement comme:
Public ActionForward Query (Mappage d'action, forme d'action, forme d'action,
Demande httpservletRequest, réponse httpservletResponse)
La réponse est généralement située dans la quatrième, alors modifions le code ci-dessus:
Paquet
for (int i = 0, j = args.length; i <j; i ++) {argsclass [i] = args [i] .getClass (); }Passer à:
pour (int i = 0, j = args.length; i <j; i ++) {if (i == 3) {argsclass [i] = httpservletResponse.class; } else {argsclass [i] = args [i] .getClass (); }}Le résumé ci-dessus (recommandé) d'appeler dynamiquement une certaine méthode via le mécanisme de réflexion Java est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.