В документации App Engine , что многоточие ( JID...
) для этого в подписи метода?
public MessageBuilder withRecipientJids(JID... recipientJids)
Какова функция этих трех точек?
В документации App Engine , что многоточие ( JID...
) для этого в подписи метода?
public MessageBuilder withRecipientJids(JID... recipientJids)
Какова функция этих трех точек?
…
, Юникод U + 2026. NetBeans 8 в Java 8 сообщает о «недопустимых символах». Таким образом , Java требует переменной длиной тройной полной остановки (период),...
.Ответы:
Это Java Varargs. Они позволяют передавать любое количество объектов определенного типа (в данном случае они относятся к типу JID).
В вашем примере допустимы следующие вызовы функций:
Подробнее здесь: http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html
источник
Способ использовать многоточие или переменные внутри метода, как если бы это был массив:
Этот метод может быть вызван следующим образом:
Внутри
PrintWithEllipsis
типsetOfStrings
является массивом String. Таким образом, вы можете сэкономить компилятору некоторую работу и передать массив:Для методов varargs параметр последовательности обрабатывается как массив того же типа. Таким образом, если две подписи отличаются только тем, что один объявляет последовательность, а другой - массив, как в этом примере:
тогда происходит ошибка времени компиляции.
Источник: спецификация языка программирования Java , где технический термин,
variable arity parameter
а не общий терминvarargs
.источник
Трехточечная (...) запись фактически заимствована из математики и означает «... и так далее».
Что касается его использования в Java, оно означает
varargs
, что к вызову метода может быть добавлено любое количество аргументов. Единственным ограничением является то, что онvarargs
должен быть в конце сигнатуры метода и может быть только один на метод.источник
Это
varargs
они используются для создания метода , который получают любое количество аргументов.Например, метод PrintStream.printf использует его, поскольку вы не знаете, сколько аргументов вы будете использовать.
Они могут использоваться только в качестве окончательной позиции аргументов.
varargs
был добавлен на Java 1.5источник
Это означает, что метод принимает переменное число аргументов («varargs») типа
JID
. В рамках метода,recipientJids
представлен.Это удобно в тех случаях, когда у вас есть метод, который может опционально обрабатывать более одного аргумента естественным образом, и он позволяет вам записывать вызовы, которые могут передавать один, два или три параметра одному и тому же методу, без уродства создания массив на лету.
Это также позволяет идиомы, такие как
sprintf
из C; смотриString.format()
, например.источник