Récemment, en raison d'un module responsable du projet, il existe de nombreuses catégories dans ce module, et chaque catégorie a un code codé, et cette valeur est transportée en tant que paramètre. Mais chaque code correspond à une méthode.
Il existe de nombreuses valeurs de code, et je ne veux pas faire de jugements d'ifelse ou de commutation, j'ai donc recherché des informations, ce qui m'a principalement fait constater que l'utilisation du mécanisme de réflexion de Java peut parfaitement résoudre ce problème
Le code de test est le suivant: (peut transporter plusieurs paramètres)
package com.ess.xmlutils; import java.lang.reflect.method; public class test {public string ceshi () {System.out.println ("111111111111"); return "Success";} public static void main (string [] args) lance l'exception {// écrire votre propre nom et la voie dans la classe informatique <?> C = Class.forname ("com.ess.xmlutils.test"); objet obj = c.newinstance (); // Le premier paramètre est écrit comme le nom de la méthode, le deuxième / troisième / ... il est écrit comme le type de paramètre dans la méthode Méthode de la liste de méthode = C.GetMethod ("CESHI2", String.class, int.class); // inviter la méthode et les portes du paramètre de la chaîne, int.classe); // inviter (String) Method.Invoke (obj, nouvel objet [] {"MyName", 4}); System.out.println (STR2); } public String Ceshi (String str) {// for (int j = 0; j <Integer.valueof (i); j ++) {System.out.println (str); //} return str; } public String Ceshi2 (String str, int i) {for (int j = 0; j <i; j ++) {System.out.println (str + "22222"); } return str; }} Cela facilitera la tâche si le nom de la méthode est épissé dynamiquement. Par exemple, mes valeurs de code ont 100, 1 ~ 100, et mes méthodes de code sont returnCodeList (); À l'heure actuelle, nous extrassons la méthode ci-dessus et renvoyons la valeur dont nous avons besoin, par exemple:
Public String Fanshe (String Methodname, String className) lève ClassNotFoundException, SecurityException, NosuchMethodeException, InstantiationException, illégalAccessException, illégalargumentException, InvocationTargexception {// Écrivez votre propre nom de classe et Chemin dans la classe informatique <? Le nom de la méthode, le deuxième / tiers / ... Écrivez le type du paramètre dans la méthode Méthode de la liste des paramètres de méthode = C.GetMethod (méthodename, string.class, int.class); // invoque exécute cette méthode et porte la valeur du paramètre String str2 = (string) method.invoke (obj, nouvel objet [] {"MyName", 4}); return str2; }Bien sûr, dans les besoins réels, vous devez toujours dessiner les méthodes vous-même en fonction des besoins du projet. J'espère que ce sera utile à tout le monde.
L'exemple ci-dessus de la méthode d'exécution dynamique du nom de la méthode d'épissage de la réflexion Java est l'ensemble du contenu partagé par l'éditeur. J'espère que cela pourra vous donner une référence et j'espère que vous pourrez soutenir Wulin.com plus.