Dae galera…
me deparei com uma situação conforme exemplo abaixo:
(String… args) ou (int… args)
queria saber o que significa e se alguem pode exemplificar
valeu raça
[]'s
Dae galera…
me deparei com uma situação conforme exemplo abaixo:
(String… args) ou (int… args)
queria saber o que significa e se alguem pode exemplificar
valeu raça
[]'s
Velho eu tb me deparei com a mesma dúvida. Eu só sei que isso se chama, var args. Se alguém realmente puder tirar essa seria legal!
Mas não pode ser só teoria, tem que ter exemplo!!
valeu
Isso se chama parâmetro aberto, quando existe um método com algum paâmetro assim quer dizer que você pode pasar quantos valores do tipo informado você quiser.
por exemplo:
Temos o seguinte método:
public void imprimeNumerosOrdenados(int ... numeros) {
// numeros é uma array de int
// ordena e imprime
}
Para chamar o método imprimeNumerosOrdenados seria assim:
// Passando quantos inteiros você quiser
imprimeNumerosOrdenados(1, 8, 6 ,4 ,8 9,6, 5,2, 3 ,6,7);
// Ou passando uma array tb funciona
Integer[] numeros = new Integer[]{1, 5, 6 ,9, 8};
imprimeNumerosOrdenados(numeros);
Só um detalhe quanto os parâmetro abertos, é que ele deve ser sempre o último parâmetro do método
[]s
Boa tarde
Isso se chama varargs, é uma nova funcionalidade incluido no JDK a partir da versão 5, varargs facilita e muito o trabalho, se liga no exemplo:
1º Vamos supor que vc tenha um método que receba um Varargs de string:
public String teste(String… arr)
Esse método agora pode receber os seguintes parametros quando chamado:
1º Um array de string;
2º Varios parametros do tipo string, exemplo: teste(“João”, “Maria”, “Fulano”)
3º E pode tambem ser invocado dessa forma teste(), assim seria como se tivessemos passando um array null para o metodo.
Falou.
pow, valeu rapaziada!!
muito bem exemplificado por vocês!
grande abraço
beleza mano
valeu a dica aih, ateh suspeitei que fosse isso
mais como n tinha certeza, botei aki no guj pq sabia q a galera iria tirar a dúvida e exemplificar pra que ficasse bem claro
mais uma vez
valeu ae raçaaa
[]'s
Olhem isso:
public static void a (String ... vr){ //erro: Duplicate method a(String ...) in type
}
public static void a (String[] vr){ //erro: Duplicate method a(String []) in type
}
Então significa que “…” e um vetor é a mesma coisa certo?
ERRADO!
Esse erro se deu porque, como ja disseram acima, “…” aceita desde uma única String até um array de String… exatamente igual ao método abaixo que aceita um array de String… digamos que o método “…” aceita o método “[]” e mais alguns argumentos.
Por isso o compilador deu esse erro… se eu fizer
a("Teste");
ele não saberia quem chamar em tempo de execução.
Para quem ainda acha que “…” e “[]” são a mesma coisa… observe o exemplo abaixo:
public static void main(String[] args) {
//OK
a("rere");
//OK
a("rere" , "rara");
//OK
a(new String[] {"a", "b", "c"});
// erro: The method b(String[]) in the type is not applicable for the arguments (String)
b("rere");
// The method b(String[]) in the type is not applicable for the arguments (String, String)
b("rere" , "rara");
//OK
b(new String[] {"a", "b", "c"});
}
public static void a (String ... vr){
}
public static void b (String[] vr){
}
OK?
[quote]Esse erro se deu porque, como ja disseram acima, “…” aceita desde uma única String até um array de String… exatamente igual ao método abaixo que aceita um array de String… digamos que o método “…” aceita o método “[]” e mais alguns argumentos.
Por isso o compilador deu esse erro… se eu fizer [/quote]
so uma pequena correção var -args aceita de 0 a muitos argumentos.