Como ve, principal exceptúa un argumento de función, que es una matriz de cadenas. JVM se encarga de pasar los argumentos de línea de comando como una matriz de cadenas a la función principal. Si no se dan argumentos, se pasa una matriz vacía, pero aún está allí.
Se podría así tener su propia función definida como esto:
void myMain(String args[]) {
for(int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
}
A continuación, puede llamar a esta función, emulando pasan tres argumentos de línea de comandos:
String a[] = {"foo", "bar", "bah"};
myMain(a);
O puede emular situación donde no se dan argumentos de línea de comando:
String a[] = {};
myMain(a);
También puede pasar args
de lo real principal para su función y que funcionará sin importar si se dan o no los parámetros:
public static void main(String[] args) {
myMain(args);
}
Tenga en cuenta que no hay verificación de puntero nulo en myMain
por lo que si se le pasa un null
arrojará NPE.
¿Puede estar más claro, cómo está ejecutando la aplicación con y sin parámetros? – medopal
Respuesta relacionada, puede hacer lo mismo como este 'public void myMethod (String ... array)' de esta manera puede pasar un número nulo de argumentos, incluso 0, y no dará error. – medopal