Что показывают три точки (...), когда они используются как часть параметров во время определения метода?

Что показывают три точки (...) при использовании в качестве параметра параметров во время определения метода?

Кроме того, существует ли какой-либо программный термин для символа этих трех точек?

Я заметил в примере кода:

public void method1 (Animal... animal) {
// Code
}

И этот метод был вызван из 2-х мест. Аргументы, переданные при вызове, были разными в обоих сценариях:

  • Массив объектов передается как аргумент метода1 (Animal...)

  • Объект класса Animal передается как аргумент метода1 (Animal...)

Итак, это что-то похожее, если вы не уверены, будете ли вы передавать один элемент массива или весь массив в качестве аргумента для метода, вы используете 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");