O que significa "String..."

Eu estava lendo o código fonte da classe ValueItem[i] to AjaxTags e deparei me com a seguinte expressão

public ValueItem(String tagName, boolean asCData, String... value)

O que significa String…?

Obrigado pelo seu tempo

olá
String significa um tipo de variável… no seu caso seria o tipo de variável
de entrada do seu método

Flwss

http://www.guj.com.br/posts/list/32457.java

Essa String com “…” que vc está perguntando é um recurso do Java 5 chamado de var args (na verdade, não lembro como se escreve)

O recurso varargs é bastante útil qdo vamos sobreescrever métodos com a mesma lista de parâmetros.

Supondo que eu tenha três métodos com lista de parâmetros double:

public static void somar(double n1, double n2){
double soma = n1 + n2;

System.out.println(soma);

}


public static void somar(double n1, double n2, double n3){

double soma = n1 + n2 + n3;

System.out.println(soma);

}

public static void somar(double n1, double n2, double n3, double n4){

double soma = n1 + n2 + n3 + n4;
System.out.println(soma);

}

Para executá-los, eu faria da seguinte forma:

public static void main(String[] args) {
Calculadora.somar(2,2);
Calculadora.somar(2,2,3);
Calculadora.somar(2,2,4,3);
}

Repare, que todos os métodos tem a mesma funcionalidade. E é justamente aí que entra o varargs!
Ele permite definirmos um método sem especificar a quantidade de parâmetros passados pra ele…

Substituindo os três métodos por apenas um método usando o varargs, ficaria da seguinte forma:

// Note que aqui temos os mesmos "..." que vc viu naquele método da String
public static void somar(double... numeros ){

double soma = 0;
for (double n: numeros){
soma += n;
}
System.out.println(soma);
}

Deste modo, poderíamos fazer diversas chamadas desse método, passando listas de parâmetros diferentes:
Exemplo:

public static void main(String[] args) {
Calculadora.somar();
Calculadora.somar(2);
Calculadora.somar(2,3);
Calculadora.somar(2,4,3);
Calculadora.somar(2,3,4,5,6,51,43,4);
Calculadora.somar(2,3,4,5,6,51,43,4,2,3,5);
}

Obrigado vtr , entendi perfeitamente , a minha dúvida era mesmo em relação à e não à class String. Realmente faz muito sentido usar o . Antigamente eu usava um array de Strings para conseguir isso.

E já agora , sabe-me explicar isto class Item { e mais tarde aparece isto public class ValueItem extends Item<ArrayList> .

Não o porquê de parametrizar uma classe.

Desde já agradeço

Acho que não entendi sua pergunta…

Você quer saber pra que serve o “” ?

[quote=vtr.oliveira]Acho que não entendi sua pergunta…

Você quer saber pra que serve o “” ?[/quote]

Eu entendo que o significa parametrizar um tipo , eu entendo quando ele é usado assim List ou assim public String funcao(T a). Mas parametrizar uma classe é um pouco estranho .

Para simplificar as coisas ,será que pode me explicar cada palavra das expressões
1.class Item
2.public class ValueItem extends Item<ArrayList>

Por exemplo , na expressão um class é uma palavra reservada que indica que vamos definir uma nova classe , Item é o nome da nova classe , e o ?

Sei que o se refere a genéricos , mas o Item com é que eu não entendo .

Obrigado pelo vosso tempo