Parâmetro pela linha de comando. Dúvida FAIL hehehe

2 respostas
javahunter
Pessoal, porque mesmo quando declaro um array no parâmetro main, eu não preciso inicializar ele, e quando eu crio um método qualquer e declaro um array qualquer também, eu preciso inicializá-lo se não da erro. Por exemplo:
class Teste {
	
	public static void main(String[] args) {
		
		System.out.println(args[0]);
		System.out.println(args[1]);
		System.out.println(args[2]);
		
	}
}
Aqui no caso eu simplesmente passo os 3 parâmetros na linha de comando que vai ser impresso pra mim no prompt. Mas agora quando faço isso:
class Teste {

	public static void main(String[] args) {
		
		String[] ar;
		ar[0] = "0";
		ar[1] = "0";
		ar[2] = "0";
		
		System.out.println(ar[0]);
		System.out.println(ar[1]);
		System.out.println(ar[2]);
	}
}
Aqui já como esperado da erro de compilação e diz que variável não foi inicializado. Queria saber porque quando é no parâmetro do método main ou em outro parâmetro qualquer não é necessário inicializar?

2 Respostas

D

javahunter:


Queria saber porque quando é no parâmetro do método main ou em outro parâmetro qualquer não é necessário inicializar?

No caso do método main, a jvm inicializa o array pra você baseado nos argumentos que passar à classe principal, ex:

java Teste.java arg1 arg2 arg3 etc…

Repare que cada argumento após o nome do arquivo é separado por espaço, e é justamente isso que a jvm usa para inicializar o array args e preenchê-lo pra você.

Já nos casos de métodos normais, a lógica é que simplesmente você deve passar o array já inicializado.

Espero ter ajudado.

javahunter

Ohh yeah, era isso.
valew!

Criado 28 de janeiro de 2015
Ultima resposta 28 de jan. de 2015
Respostas 2
Participantes 2