Uso de "Object ... parametors" em assinatura de função

5 respostas
R

Bom dia, gostaria de saber qual a função do seguinte trecho: “Object… parametros” na função abaixo:

protected void save(String insertSql, Object... parametros){
		
	}

5 Respostas

S
rlanhellas:
Bom dia, gostaria de saber qual a função do seguinte trecho: "Object... parametros" na função abaixo:
protected void save(String insertSql, Object... parametros){
		
	}

É o Varargs ( http://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html ).

Você pode chamar o metodo da seguinte forma:

save("SELECT ALGUMA_COISA FROM ALGUMA_TABELA", "Uma string aqui", "outra string aqui", "isso não acaba nunca");

e dentro do metodo você pegaria cada um dos objetos assim:

System.out.println(parametros[0]);
System.out.println(parametros[1]);
System.out.println(parametros[2]);

Observação: a primeira String que você passou não vai estar no array "parametros", ou seja, a String que está em parametros[0] é "Uma string aqui" e não "SELECT ALGUMA_COISA FROM ALGUMA_TABELA".

Perceba que o método main usa Varargs :)

Em resumo:

Você pode mandar vários objetos como parâmetro para o método e o metodo entenderia que todos eles são um array de n posições onde n é a quantidade de objetos que você passou.

R

Então, desta forma eu devo passar 1 parâmetro do tipo STRING obrigatoriamente e mais quantos eu desejar de qualquer tipo, correto ?

Porém se eu quisesse que fosse 1 parâmetro do tipo STRING e mais quantos desejar do tipo int seria assim:

protected void save(String insertSql, int... parametros){  
      
}

correto ?

E

É isso mesmo. http://rationalpi.wordpress.com/2007/01/27/varargs-and-behavior-of-method-arguments/

R

Obrigado !

S

Agora que sua dúvida foi respondida, por favor acrescente um [Resolvido] no título do tópico.

Criado 7 de junho de 2013
Ultima resposta 7 de jun. de 2013
Respostas 5
Participantes 3