La respuesta de @jjnguy es correcta en la mayoría de las circunstancias. Nunca verá una null
cadena en la matriz de argumentos (o una null
matriz) simain
se llama al ejecutar la aplicación se ejecuta desde la línea de comandos de la manera normal.
Sin embargo, si alguna otra parte de la aplicación llama a un main
método, es posible que pase un null
argumento onull
matriz de argumentos.
Sin embargo (2), este es claramente un caso de uso muy inusual y es una violación flagrante del contrato implícito para un main
método de punto de entrada. Por lo tanto, no creo que debas molestarte en verificar los null
valores de los argumentos en main
. En el improbable caso de que ocurran, es aceptable que el código de llamada obtenga un NullPointerException
. Después de todo, es un error en la persona que llama violar el contrato.
null
verificación es innecesaria, pero tiene razón en que lalength
verificación es necesaria,si quiero verificar si se pasa o no alguna posición específica del argumento de la línea de comando, ¿cómo verificar? como, por ejemplo, en algunos escenarios se pasarán 2 argumentos de línea de comando y en algunos solo se pasará uno, entonces, ¿cómo se verifica si se pasa o no la línea de comando específica?
public class check { public static void main(String[] args) { if(args[0].length()!=0) { System.out.println("entered first if"); } if(args[0].length()!=0 && args[1].length()!=0) { System.out.println("entered second if"); } } }
Entonces, en el código anterior, si no se pasa args [1], obtengo java.lang.ArrayIndexOutOfBoundsException:
Entonces, ¿cómo abordo esto donde puedo verificar si el segundo argumento se aprueba o no y, si se aprueba, ingresarlo? necesita ayuda lo antes posible.
fuente
Si no pasa ningún argumento, incluso en ese caso, args se inicializa pero sin ningún elemento / elemento. Prueba el siguiente, obtendrás el mismo efecto :
public static void main(String[] args) throws InterruptedException { String [] dummy= new String [] {}; if(dummy[0] == null) { System.out.println("Proper Usage is: java program filename"); System.exit(0); } }
fuente
main
método se llamará con unaargs
matriz cuya longitud es cero.dummy[0]
arroja una excepción de índice de matriz fuera de los límites! Lo mismo ocurre si cambia el programa (de nuevo) a pruebaargs[0]
y lo ejecuta sin argumentos.