
Assim como em outras linguagens de programação: C++ e C, por exemplo, os três pontos (...) são usados na declaração de um método como parâmetro.
Esses pontos permitem que NENHUM argumento seja passado, bem como vários argumentos sejam passados quando o método é chamado. Esses três pontos também são conhecidos como var args.
Suponhamos que você possui esse código abaixo com um método de nome tresPontos que retorna uma String e recebe também como String um var args:
public class Code {
public static String tresPontos(String...i){
String frase = "";
for (String s : i) {
frase += s;
}
return frase;
}
public static void main(String[] args) {
System.out.println("Resultado: " + tresPontos("Naquele ", "dia"));
}
}Note que o método não especifica que recebe só 2 argumentos, mas nós passamos 2 argumentos e ela retorna a saída:
Resultado: Naquele diaSe eu não passar argumentos ou passar mais que 2 ela entenderá normalmente, exemplo:
public class Code {
public static String tresPontos(String...i){
String frase = "";
for (String s : i) {
frase += s;
}
return frase;
}
public static void main(String[] args) {
System.out.println("Resultado: " + tresPontos());
System.out.println("Resultado: " + tresPontos("Naquele ", "dia"));
System.out.println("Resultado: " + tresPontos("Naquele ", "dia ", "eu estava"));
System.out.println("Resultado: " + tresPontos("Naquele ", "dia ", "eu estava ", "meio ansiosa."));
}
}A saída será:
Resultado:
Resultado: Naquele dia
Resultado: Naquele dia eu estava
Resultado: Naquele dia eu estava meio ansiosa.Podíamos ainda usar outro método, dessa vez do tipo void e que recebe var args do tipo int:
Chamando: sem passar argumentos e com número variado de argumentos!
public class Code {
public static String tresPontos(String...i){
String frase = "";
for (String s : i) {
frase += s;
}
return frase;
}
public static void tresPontosInt(int ... i){
int soma = 0;
for (int x : i) {
soma += x;
}
System.out.println("A soma é: " + soma);
}
public static void main(String[] args) {
System.out.println("Resultado: " + tresPontos());
System.out.println("Resultado: " + tresPontos("Naquele ", "dia"));
System.out.println("Resultado: " + tresPontos("Naquele ", "dia ", "eu estava"));
System.out.println("Resultado: " + tresPontos("Naquele ", "dia ", "eu estava ", "meio ansiosa."));
Code.tresPontosInt();
Code.tresPontosInt(3);
Code.tresPontosInt(3, 6);
Code.tresPontosInt(0, 6, 3, 1, 9);
Code.tresPontosInt(1, 2, 3, 4, 5, 6);
}
}Funcionará normalmente, além da saída do método dos tresPontos() ainda teremos:
A soma é: 0
A soma é: 3
A soma é: 9
A soma é: 19
A soma é: 21Molezinha de entender, né?!
Para mais informações acesse o tópico da documentação oficial.