Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
84
28 / 33 / 12
Регистрация: 11.04.2016
Сообщений: 132
1

Перебор всех экземпляров класса

13.05.2016, 11:59. Показов 4637. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребятушки, подскажите как да что. Как "найти" все экземпляры класса "X"?
Допустим есть у меня класс машины. Есть несколько его экземпляров. Как их все перебрать/собрать/сохранить.
Кто как делает и почему. Задачи ни какой не стоит, просто интересен стал момент.
Рассуждения в студию.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2016, 11:59
Ответы с готовыми решениями:

Динамическое создание экземпляров класса (Cars)
Есть класс static class Cars { public static int ArriveTime, FillTime; } Нужно будет...

Использование рефлексии для получения экземпляров класса
Я использую рефлексию для получения экземпляров заданного класса следующим образом. package...

Приведение массива экземпляров абстрактного класса к массиву интерфейсов
Имеется интерфейс public interface IObject { public void doSomething(); public IObject...

Перебор всех вариантов
Доброго времени суток...помогите пожалуйста...а то уже мучаюсь не один день...есть такая задачка...

5
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
13.05.2016, 12:02 2
84, то есть, не имея ссылки?
0
84
28 / 33 / 12
Регистрация: 11.04.2016
Сообщений: 132
13.05.2016, 12:09  [ТС] 3
Да. Не имея. Точнее даже можно и имея, но смысла от этого не много.
Например у меня есть класс Car и 15 экземпляров (лада, ваз, порш etc.). Вот как мне с ними со всеми "поработать"?
Например открутить у всех "заднее левое колесо"?
0
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
13.05.2016, 12:13 4
84, если они, скажем, в массиве расположены - пробежаться по массиву.
0
143 / 115 / 61
Регистрация: 13.01.2016
Сообщений: 305
13.05.2016, 12:20 5
Лучший ответ Сообщение было отмечено 84 как решение

Решение

84, Гугл сказал, что нет. За исключением создания объектов с помощью фабрики.

You can use a Factory static initializer when you instantiate your class (Singleton pattern) and then add each generated instance in the factory constructor to a List ...

Something like this :

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  class MyObject {
    private static List instances = new ArrayList();
 
    public static MyObject createMyObject() {
    MyObject o = new MyObject();
    instances.add(new java.lang.ref.WeakReference(o));
    return o;
    }
 
    public static List getInstances() {
    return instances;
    }
 
    private MyObject() {
    // Not allowed 
    }
  }
Ссылку на весь тред вроде запрещено давать, поищите "getting all instances of a class", есть очень развернутые ответы.
1
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
13.05.2016, 15:35 6
Цитата Сообщение от 84 Посмотреть сообщение
Кто как делает и почему.
никто так не делает потому что ненадо.
Если у вас нет ссылок на все объекты класса, значит они вам не нужны. Если нужны, создайте класс CarRepository, храните там все ваши машины и тогда делайте с ними что угодно
0
13.05.2016, 15:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2016, 15:35
Помогаю со студенческими работами здесь

Работа с множеством экземпляров класса "Дни недели"
Создать класс «Дни недели». Этот класс является ключом(key) в LinkedHashSet Значением (value)...

Перебор всех комбинаций слагаемых
Всем привет! Есть массив натуральных чисел и есть натуральное число M. Необходимо выбрать из...

Перебор всех возможных вариантов буквосочетаний
Возникла такая задача, сделать перебор всех возможных вариантов сочетаний букв латинского алфавита,...

Перебор всех возможных строк заданной длины
Строки состоят из символов с кодами от 1 до 255. Задается длина строки и надо перебрать все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru