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