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.