Est-il possible d'appeler la méthode main en passant args[] à partir d'une autre méthode?
Je suis en train d'appeler la méthode main d'une classe d'une autre méthode de passage des arguments comme lors de l'exécution de la classe à partir de la ligne de commande. Est-il un moyen de faire cela?
- Ce qui s'est passé lorsque vous avez essayé?
- ne pouvais pas d'accord avec vous. Cette question peut avoir trivialement été vérifié (probablement plus rapide que de l'affichage de la question).
- Beaucoup plus rapide que de l'affichage de la question, et les ordres de grandeur plus rapide que d'attendre la réponse ... qui pourrait ne jamais arriver.
- pourquoi n'avez-vous pas encore accepté votre réponse?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez appeler la
main
méthode que vous appelez de toute autre méthode (statique):Exemple:
Oui, la principale méthode peut être appelée comme toute autre méthode, donc si vous avez une classe de Test avec une méthode main, vous pouvez appeler à partir d'une autre classe comme:
et de cette façon vous aurez pass "a" et "b" comme paramètres.
Avez-vous essayé quelque chose comme :
Mais je pense que ce n'est pas une bonne idée, la méthode main() ne doit contenir que des quelques très de base de code qui appelle le constructeur. Vous ne devriez pas l'appeler directement, mais plutôt de créer une nouvelle instance de l'autre classe qui va faire tous les d'initialisation nécessaire.
La réponse est oui,
Depuis
main
est unstatic
méthode et est public méthode, vous pouvez le faire (et il est compilé sur mon cas):Sûr, vous pouvez appeler la
main
-méthode comme une ordinaire méthode (statique) comme ceci:Comme une note de côté, vous pouvez déclarer la principale méthode comme ceci:
et de l'appeler comme
Le bytecode produit est le même (varargs sont compilés pour les tableaux), de sorte qu'il est compatible dans tous les sens (sauf qu'il ne compile pas sur la non-vararg connaissance de java-compilateurs).
Vous pouvez simplement renommer vos principales et en faire une nouvelle, faisant appel à la main "nouveau". Au moins c'est ce que je fais généralement quand les tests unitaires