Что показывают три точки (...), когда они используются как часть параметров во время определения метода?
Что показывают три точки (...) при использовании в качестве параметра параметров во время определения метода?
Кроме того, существует ли какой-либо программный термин для символа этих трех точек?
Я заметил в примере кода:
public void method1 (Animal... animal) {
// Code
}
И этот метод был вызван из 2-х мест. Аргументы, переданные при вызове, были разными в обоих сценариях:
Итак, это что-то похожее, если вы не уверены, будете ли вы передавать один элемент массива или весь массив в качестве аргумента для метода, вы используете 3 точки в составе параметров в определении метода
Также, пожалуйста, дайте мне знать, есть ли какой-либо термин программирования для символа этих трех точек.
Ответы
Ответ 1
Он называется varargs.
Это означает, что вы можете передать столько, сколько хотите.
Он фактически переводит его в method1(Animal[] a)
, и вы ссылаетесь на них как на a[1]
, как на любой другой массив.
Если у меня есть следующий
Cat whiskers = new Cat();
Dog rufus = new Dog();
Dolphin flipper = new Dolphin();
method1(whiskers, rufus, flipper); // okay!
method1(rufus); // okay!
method1(); // okay!
method1(flipper,new Parakeet()); // okay!
Ответ 2
Это означает, что метод принимает массив этого типа объектов , но, этот массив создается автоматически при передаче нескольких объектов этого типа, разделенных запятыми.
Имейте в виду, что в сигнатуре метода может быть только один параметр vararg данного типа, и вы не можете иметь другой аргумент того же типа в подписи после vararg (очевидно, что не было бы способа различая их).
Ответ 3
Это означает, что в качестве параметра (ов) для этой функции могут передаваться ноль или более объектов String (или их массив).
Может быть:
x("foo", "bar");
x("foo", "bar", "baz");