[JAVA] À propos de method.invoke

Je n'ai pas eu l'occasion d'appeler et d'utiliser la méthode de manière dynamique, mais j'étais curieux de la voir dans le code source, alors je l'ai mise en pratique.

J'ai créé une classe pour confirmation et l'ai essayé. Ici, la classe Invoke reçoit le nom de méthode de la classe Getmethod et l'appelle dynamiquement. Il semble que nous pouvons faire diverses choses si nous en imaginons plus, mais avant tout, le but est de bouger nos mains et de leur faire se souvenir.

class Getmethod {
	public void a(){
		System.out.println("Appelé un");
	}
	public void b(String str){
		System.out.println(str + "Appelé");
	}

	public void c(String str,String str2){
		System.out.println(str + "Quand" + str2 + "Appelé");
	}
}
public class Invoke {
	public static void main(String[] args) throws InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException, IllegalArgumentException, InvocationTargetException {

	try {
		//Obtenez la classe
		Class<?> g = Class.forName("invoke.Getmethod");
		//Obtenez une instance
		Object myobj = g.newInstance();
		//Get méthode
		Method a = g.getMethod("a");
		Method b = g.getMethod("b",String.class);
		Method c = g.getMethod("c",String.class,String.class);
		//Exécution de la méthode
		a.invoke(myobj);
		b.invoke(myobj,"b");
		c.invoke(myobj,"c","d");
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	}
	}
}

Voici le résultat de l'exécution.

Appelé un
Appelé b
Appelé c et d

Comment utiliser Si vous avez une telle utilisation, nous attendons une demande de modification.

Recommended Posts

À propos de method.invoke
À propos =
À propos de Kotlin
À propos de attr_accessor
À propos de Hinemos
À propos de l'héritage
À propos de Docker
À propos des rails 6
À propos du printemps ③
À propos d'énumération
À propos du polymorphisme
À propos facultatif
À propos du hachage
À propos de JitPack
À propos de ça ()
À propos de l'encapsulation
À propos de JAVA_HOME
À propos de statique
À propos des exceptions
À propos de la portée
[Maven] À propos de Maven
À propos de l'interface Java
[Java] À propos des fonctionnalités de Java 12
À propos du routage des rails
À propos de la complexité cyclique
À propos de la gestion des exceptions
À propos des génériques AsyncTask
À propos des symboles Ruby
À propos de la multiplication des tableaux
[Java] À propos des tableaux
À propos de l'héritage de classe.
À propos de Spring AOP
À propos de Ruby Hash
À propos des méthodes singulières
À propos des outils de création
Mâchez l'API
[À propos du double hachage]
Quelque chose à propos de java
Où est Java
À propos de la méthode de HttpServlet ()
À propos des fonctionnalités Java
À propos de SIGNING_REGION: NoSuchFieldError
À propos de la méthode
À propos de la classe standard