[JAVA] Je veux appeler la méthode principale en utilisant la réflexion

Par exemple, si vous développez un outil de ligne de commande, vous souhaiterez peut-être tester ou déboguer la méthode main. La réflexion est utile dans de tels cas, mais comment la méthode main peut-elle être exécutée à partir de la réflexion? La conclusion est l'exemple ci-dessous.

try {
    Method mainMethod = Sample.class.getMethod("main", String[].class);
    String[] args = {"arg1", "arg2", "arg3"};
    mainMethod.invoke(null, (Object) args);
} catch (NoSuchMethodException 
            | SecurityException 
            | IllegalAccessException
            | IllegalArgumentException
            | InvocationTargetException e) {
    e.printStackTrace();
    throw new RuntimeException(e);
}

Est-ce «invoquer» comme point? __ Donnez null au premier argument, et spécifiez ʻargs cast en ʻObject pour la partie d'argument de longueur variable suivante. __ Protégeons ces deux points et amusons-nous à réfléchir (´ ・ ω ・ `)

Recommended Posts

Je veux appeler la méthode principale en utilisant la réflexion
Je veux appeler une méthode et compter le nombre
Je veux appeler une méthode d'une autre classe
Je veux juger la gamme en utilisant le diplôme mensuel
[Commentaire approximatif] Je veux épouser la méthode du pluck
[JDBC ③] J'ai essayé d'entrer à partir de la méthode principale en utilisant des espaces réservés et des arguments.
J'ai essayé d'expliquer la méthode
Je souhaite utiliser la méthode de désinfection autre que View.
Je voulais ajouter @VisibleForTesting à la méthode
J'étais accro à la méthode du rouleau
Je veux passer l'argument d'Annotation et l'argument de la méthode d'appel à aspect
[Ruby] Je veux faire un saut de méthode!
Je veux var_dump le contenu de l'intention
Lorsque vous souhaitez utiliser la méthode à l'extérieur
Je veux tronquer après la virgule décimale
Je veux obtenir la valeur en Ruby
Je souhaite créer l'environnement de développement local le plus solide à l'aide de conteneurs distants VSCode
[Java] Je souhaite calculer la différence par rapport à la date
Je veux intégrer n'importe quel TraceId dans le journal
Je veux connaître la réponse de l'application Janken
Je souhaite afficher le nom de l'affiche du commentaire
Je souhaite utiliser le mode sombre avec l'application SWT
Je veux retourner la position de défilement de UITableView!
Je souhaite simplifier la sortie du journal sur Android
Je souhaite ajouter une fonction de suppression à la fonction de commentaire
Je veux convertir des caractères ...
[Débutant] Je souhaite modifier le fichier de migration-Comment utiliser la restauration-
[Rails] [bootstrap] Je souhaite modifier la taille de la police de manière réactive
Je souhaite créer une applet Java sans utiliser d'IDE
(´-`) .. oO (Je veux trouver facilement la sortie standard" Hello ".
Je veux amener Tomcat sur le serveur et démarrer l'application
Je souhaite modifier le paramètre de sortie du journal de UtilLoggingJdbcLogger
Je souhaite utiliser l'API Java 8 DateTime lentement (maintenant)
Je souhaite créer un formulaire pour sélectionner la catégorie [Rails]
J'ai essayé de construire l'environnement petit à petit en utilisant docker
Je veux mettre le JDK sur mon PC Mac
Je veux donner un nom de classe à l'attribut select
Je souhaite rechercher de manière récursive la liste des classes sous le package
Je souhaite passer au même écran dans l'état enregistré
Je souhaite renvoyer plusieurs valeurs de retour pour l'argument saisi
[Ruby] Je souhaite inverser l'ordre de la table de hachage
Je veux passer la commande de démarrage à postgres avec docker-compose.
Je souhaite simplifier l'instruction if-else de la branche conditionnelle en Java
Comment utiliser la méthode link_to
Je souhaite accorder des autorisations de modification et de suppression uniquement à l'affiche
Comment utiliser la méthode include?
[Metal] J'ai essayé de comprendre le flux jusqu'au rendu avec Metal
Comment utiliser la méthode form_with
Je veux comprendre le flux des paramètres de demande de traitement Spring
Utilisez Modifier # isStatic pour déterminer si la méthode [Reflection] est statique.