Nos documentos do Google App Engine , para que servem as reticências ( JID...
) nesta assinatura de método?
public MessageBuilder withRecipientJids(JID... recipientJids)
Qual é a função desses três pontos?
Nos documentos do Google App Engine , para que servem as reticências ( JID...
) nesta assinatura de método?
public MessageBuilder withRecipientJids(JID... recipientJids)
Qual é a função desses três pontos?
…
, Unicode U + 2026. O NetBeans 8 no Java 8 relata "caracteres ilegais". Portanto, os varargs Java requerem a tripla parada completa (ponto final)...
,.Respostas:
Essas são varargs Java. Eles permitem passar qualquer número de objetos de um tipo específico (nesse caso, eles são do tipo JID).
No seu exemplo, as seguintes chamadas de função seriam válidas:
Veja mais aqui: http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html
fonte
A maneira de usar as reticências ou varargs dentro do método é como se fosse uma matriz:
Este método pode ser chamado da seguinte maneira:
Dentro
PrintWithEllipsis
, o tipo desetOfStrings
é uma matriz de String. Então você pode economizar algum trabalho no compilador e passar uma matriz:Para varargs métodos , um parâmetro de sequência é tratado como sendo uma matriz do mesmo tipo. Portanto, se duas assinaturas diferirem apenas, uma declara uma sequência e a outra uma matriz, como neste exemplo:
ocorre um erro em tempo de compilação.
Fonte: a especificação Java Programming Language , em que o termo técnico é
variable arity parameter
mais do que o termo comumvarargs
.fonte
A notação de três pontos (...) é realmente emprestada da matemática e significa "... e assim por diante".
Quanto ao seu uso em Java, significa
varargs
, o que significa que qualquer número de argumentos pode ser adicionado à chamada do método. As únicas limitações são que elasvarargs
devem estar no final da assinatura do método e só pode haver uma por método.fonte
Essas são
varargs
eles são usados para criar um método que receber qualquer número de argumentos.Por exemplo, o método PrintStream.printf o usa, pois você não sabe quantos argumentos usará.
Eles só podem ser usados como posição final dos argumentos.
varargs
foi adicionado no Java 1.5fonte
Isso significa que o método aceita um número variável de argumentos ("varargs") do tipo
JID
. Dentro do método,recipientJids
é apresentado.Isso é útil para casos em que você tem um método que pode opcionalmente manipular mais de um argumento de maneira natural e permite escrever chamadas que podem passar um, dois ou três parâmetros para o mesmo método, sem a feiura de criar uma matriz em tempo real.
Ele também permite idiomas como
sprintf
C; vejaString.format()
, por exemplo.fonte