En los documentos de App Engine , ¿qué son los puntos suspensivos (JID...
) en la firma de este método?
public MessageBuilder withRecipientJids(JID... recipientJids)
¿Cuál es la función de esos tres puntos?
En los documentos de App Engine , ¿qué son los puntos suspensivos (JID...
) en la firma de este método?
public MessageBuilder withRecipientJids(JID... recipientJids)
¿Cuál es la función de esos tres puntos?
…
, Unicode U + 2026. NetBeans 8 en Java 8 informa de "carácter ilegal". Así Java varargs requerir la triple punto (período),...
.Respuestas:
Esos son los varargs de Java. Le permiten pasar cualquier cantidad de objetos de un tipo específico (en este caso, son de tipo JID).
En su ejemplo, las siguientes llamadas a funciones serían válidas:
Ver más aquí: http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html
fuente
La forma de utilizar puntos suspensivos o varargs dentro del método es como si fuera una matriz:
Este método se puede llamar de la siguiente manera:
En
PrintWithEllipsis
el interior , el tipo desetOfStrings
es una matriz de cadenas. Para que pueda guardar el compilador algo de trabajo y pasar una matriz:Para varargs métodos , un parámetro de secuencia se trata como una matriz del mismo tipo. Entonces, si dos firmas difieren solo en que una declara una secuencia y la otra una matriz, como en este ejemplo:
entonces se produce un error en tiempo de compilación.
Fuente: La especificación del lenguaje de programación Java , donde el término técnico es
variable arity parameter
más que el término comúnvarargs
.fuente
La notación de tres puntos (...) se toma prestada de las matemáticas y significa "... y así sucesivamente".
En cuanto a su uso en Java, significa
varargs
, lo que significa que se puede agregar cualquier número de argumentos a la llamada al método. Las únicas limitaciones son quevarargs
deben estar al final de la firma del método y solo puede haber una por método.fuente
Esos son los
varargs
que se utilizan para crear un método que recibe cualquier número de argumentos.Por ejemplo, el método PrintStream.printf lo usa, ya que no sabes cuántos argumentos usarías .
Solo pueden usarse como posición final de los argumentos.
varargs
fue agregado en Java 1.5fuente
Significa que el método acepta un número variable de argumentos ("varargs") de tipo
JID
. Dentro del método,recipientJids
se presenta.Esto es útil para los casos en que tiene un método que puede manejar opcionalmente más de un argumento de forma natural, y le permite escribir llamadas que pueden pasar uno, dos o tres parámetros al mismo método, sin tener la fealdad de crear Una matriz sobre la marcha.
También permite modismos tales como
sprintf
de C; verString.format()
, por ejemplo.fuente