Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Конструктор с переменным кол-вом аргументов. Как?  (Прочитано 6382 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Vantuz-Subhuman
Участник

ru
Offline Offline
Пол: Мужской

« : 24-12-2009 09:49 » 

Здравствуйте.
Вот, натолкнулся на такую проблему: класс создаёт и управляет объектом типа ArrayList.
Реализовал конструктор по умолчанию и метод "add", но такой подход утяжеляет код.

Выглядит примерно так:
Код:
class ListManagerTest {

    public static void main(String[] args) {
        
        Item item1 = new Item("Item1");
        Item item2 = new Item("Item2");

        ListManager list = new ListManager();

        list.add(item1);
        list.add(item2);
        

    }

}

class ListManager {

    public ListManager() {

    }

    public void add(Item item) {

        list.add(item);

    }

    private ArrayList<Item> list = new ArrayList<Item>();

}

class Item {

    public Item(String aName) {

        name = aName;

    }

    private String name = "";

}

А что, если в список надо добавить несколько десятков объектов?

Вот и хотел узнать, есть ли в джаве возможность создавать конструкторы класса с переменным кол-вом аргументов? Что-то вроде:

Код:
        ListManager list = new ListManager(
                item1, item2, item3, ..., item42);

Всё это усложняется тем, что добавлять надо объекты своего собственного класса, а не стандартного.
« Последнее редактирование: 24-12-2009 09:52 от Vantuz-Subhuman » Записан

«You should never underestimate the predictability of stupidity»,
«Never attribute to malice that which can be adequately explained by stupidity»
Vantuz-Subhuman
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 24-12-2009 12:21 » 

Нашёл вот такое решение:

Код:
class MyClass {
   
    public MyClass(Object ... args) {
       
        for(Object obj : args) {

                // do something

        }
    }
}

Так всё работает и с объектами собственных классов.

Вопрос в том, сталкивался ли кто-нибудь с подобной конструкцией? Какие могут быть проблемы? На что стоит обратить внимание, при использовании?
Записан

«You should never underestimate the predictability of stupidity»,
«Never attribute to malice that which can be adequately explained by stupidity»
Falsehood
Молодой специалист

ru
Offline Offline
Пол: Женский
не может быть


« Ответ #2 : 25-12-2009 14:24 » 

многократно использовала, с проблемами не сталкивалась
Записан

Славная трава...
Vantuz-Subhuman
Участник

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 28-12-2009 09:46 » new

Спасибо.
Записан

«You should never underestimate the predictability of stupidity»,
«Never attribute to malice that which can be adequately explained by stupidity»
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines