La respuesta de @jjnguy es correcta en la mayoría de las circunstancias. Nunca verá una nullcadena en la matriz de argumentos (o una nullmatriz) 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 mainmétodo, es posible que pase un nullargumento 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 mainmétodo de punto de entrada. Por lo tanto, no creo que debas molestarte en verificar los nullvalores 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.
nullverificación es innecesaria, pero tiene razón en que lalengthverificació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
mainmétodo se llamará con unaargsmatriz 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.