Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Передать ссылку на массив в объект. Объект - элемент массива

40K
04 июня 2010 года
mafiozzzza
34 / / 16.07.2009
Есть массив объектов, Они должны взаимодействовать между собой.
Поэтому мне необходимо передать внутрь каждого из этих объектов ссылку на массив во время его создания;
Сделал соответствующий параметр в конструкторе, но когда запускаю программу - выдает NullPointerException. Подскажите, как быть. Или как по-другому организовать взаимодействие объектов, тоесть сделать так чтобы они знали друг о друге.
40K
04 июня 2010 года
mafiozzzza
34 / / 16.07.2009
Проблема решена с помошью singletona
31K
10 июля 2010 года
leva_fad
3 / / 16.09.2007
Чтобы решить именно эту задачу, проблем не вижу:

 
Код:
Object[] mas = new Object[100];
mas[1] = new Element(mas);


Где тут может быть NullPointerException?

Если нужно динамически добавлять - вместо массива ArrayList.
На счет singeltona - правильнее будет реализовать через него, т.е. в твоих классах не хранить ссылку на массив, а получать ее когда это нужно.

Но такие варианты - только ответ на твой вопрос. Не зная задачи, немогу посоветовать как ее решить более правильно.
276
11 июля 2010 года
Rebbit
1.1K / / 01.08.2005
Цитата: mafiozzzza
Проблема решена с помошью singletona


Нееее. Это у вас новая проблема создалась :)

276
11 июля 2010 года
Rebbit
1.1K / / 01.08.2005
Цитата: leva_fad

На счет singeltona - правильнее будет реализовать через него, т.е. в твоих классах не хранить ссылку на массив, а получать ее когда это нужно.


Не верно. Сингелтон очень опасный инструмент и его нужно использовать очень редко. Года 2-3 назад тут много нахоливарили по етому поводу. Попробуйте поискать. Там интересно. В даном же случае мне кажется целесообразным просто создать фабричный метод, которий генерирует весь масив обьектов или один обект, но принудительно добавляя его в нужний лист
List<Element> createElementList(int size)
или
Element createAndAddElement(List<Element> list)

5
11 июля 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: mafiozzzza
Есть массив объектов, Они должны взаимодействовать между собой.
Поэтому мне необходимо передать внутрь каждого из этих объектов ссылку на массив во время его создания;
Сделал соответствующий параметр в конструкторе, но когда запускаю программу - выдает NullPointerException. Подскажите, как быть. Или как по-другому организовать взаимодействие объектов, тоесть сделать так чтобы они знали друг о друге.


Разделить процессы создания объектов и сообщения им о коллекции в которой они находятся. Т.е. ввести отложенную инициализацию.
1) Создаем массив/список/что-то еще
2) Заполняем коллекцию свеженькими объектами
3) Обходим коллекцию и вызываем у каждого объекта метод Init в котором сообщаем всю информацию об их окружении (в вашем случае передаем ссылку на коллекцию).

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог