String... como funciona?

quando vc declara em um método um parametro utilizando String… como essa string funciona? já vi q vc pode passar tanto uma String quanto String[], tem mais alguma coisa?

Eu naum entendi mtu bem a sua pergunta, mas vamo lá.
Se você declara um método assim:
Public String seuMetodo() --> Significa que seu método ira retorna um valor String.
Public void seuMetodo( String string ) —> Significa que seu método declaro um parâmetro String, e só ira receber dados desse tipo.
String string --> eh uma variavel
String string[] --> eh uma matrix
Espero ter ajudado.
Flw

Esse recurso chama-se Varargs, é uma forma de criar um tipo de “sobrecarga dinâmica” do método, o que ocorre é que você pode passar vários parâmetros e eles são interpretados dentro do método como um array, seria algo assim:

[code]public class Calculadora{
public double somar(double… nums){
double total = 0.0;

  for(double n : nums){
    total += n;
  }

  return total;

}

public static void main(String[] args){
Calculadora calc = new Calculadora();
System.out.println(calc.somar(1.0, 5.3, 10.5, 20.7));
System.out.println(calc.somar(5.0, 10.0));
System.out.println(calc.somar(100.0, 53.0, 25.0));
double[] numeros = {10.0, 20.0, 30.0};
System.out.println(calc.somar(numeros));
}
}[/code]

Há algumas regras quanto a isso, como por exemplo o parâmetro vararg tem sempre que ser o ultimo, o que restringe o parâmetro vararg a apenas 1.

Isso por exemplo não é valido:

[code]public double somar(double… nums, int outroparametro){

}

public void metodo(double… param1, String… param2){

}[/code]

http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html

Tenho um vídeo sobre isso, mas ainda não recoloquei no meu site depois que reformulei ele, mas vou colocar logo, depois você vê lá…

realmente eu q nao expliquei bem deixa eu revisar se vc declarar um método com

void metodo(String… s) {
}

com os (…) mesmo- vc pode passar pra esse método tanto String quanto String[] ou seja:

String s1 = “”;
metodo(s1);
String[] s2 = {""};
metodo(s2);

tava querendo saber se esse tipo de declaracao de (String… ) tem mais alguma outra propriedade pq tava mexendo aki e verifiquei que onde eu tinha usado ela parece q nao é obrigatorio ta passando um parametro pro metodo por exemplo

void metodo(int i, String… s) {
}

eu chamei o metodo apenas com

metodo(1);

quero saber mais sobre essa declaracao

respondido na mensagem acima

Se você não passa esse parâmetro, então é passado um array de tamanho 0.