Значение конструкции с многоточием

271
18 ноября 2017, 10:01

Что означает E... в public void addElement(E... data) { /* .... */ } в Java?

Answer 1

Многоточие указывает на то, что может быть передано произвольное число аргументов указанного типа (см. Varargs). В итоге внутри метода это преобразуется в массив и можно взять элемент по индексу даже.

Пример:

void foo(String... args) {        
    System.out.println(args[0]); // по индексу
    for (String arg : args) {
        System.out.println(arg);
    }
}

Может быть вызвано вот так:

foo("foo"); // один
foo("foo", "bar"); // два
foo("foo", "bar", "lol"); // три
foo(new String[] { "foo", "bar" }); // даже массив
foo(); // без аргументов

Соответственно в вопросе тоже самое, только касается типа E - ожидается именно его поступление вовнутрь.

READ ALSO
Вектор пар в Java

Вектор пар в Java

Как создать вектор пар?

302
Как написать обработчик аннотации?

Как написать обработчик аннотации?

У меня задача написать аннотацию подобную @Value в SpringBootТоесть любое поле аннотированое @Prop("${value}") должно получить значение из properties файла

292
Android: После нажатия на кнопку back не отображаются данные из предыдущей активити

Android: После нажатия на кнопку back не отображаются данные из предыдущей активити

У меня есть DishesActivity и DishActivityИз DishesActivity я попадаю в DishActivity и при нажатии на кнопку home(back) в тулбаре я попадаю на DishesActivity, но он почему-то пустой

252